Ниже приведен json для страницы WIKI.(формат, вероятно, далеко, так что вот ссылка, где его лучше увидеть: https://en.wikipedia.org/w/api.php?action=query&prop=pageimages&titles=John_F._Kennedy&pithumbsize=500)
{"batchcomplete": "", "query": {"normalized": [{"из ":" John_F._Kennedy "," to ":" John F. Kennedy "}]," pages ": {" 5119376 ": {" pageid ": 5119376," ns ": 0," title ":" JohnФ. Кеннеди "," thumbnail ": {" source ":" https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/John_F._Kennedy%2C_White_House_photo_portrait%2C_looking_up.jpg/385px-John_F._Kennedy%2C_White_House_photo_portrait%2C_looking_up.jpg", "width": 385, "height": 500}, "pageimage": "John_F._Kennedy, _White_House_photo_portrait, _looking_up.jpg"}}}}
Я создал свои структуры для представления ключей json, но не могу понять, какую структуру или переменную я могу написать, чтобы представить число 5119376, которое, по-видимому, является объектом.другие значения ключа являются строками и не меняются. Но этот ключ странный, потому что это целое число, и он меняется с вики-страницы на вики-страницу. Поэтому я не знаю, как назвать этот ключ, потому что он, предположительно, номер И он меняется скаждую страницу.
Я попытался распечатать весь объект, чтобы посмотреть, как он выглядит в консоли:
{WikiStruct (query:quote_project.QueryStruct (pages: необязательно (quote_project.PageStruct (pageid: nil, ns: nil, title: nil, миниатюра: nil, pageimage: nil))), пакетное выполнение: необязательно (""))}
Таким образом, компьютер получил, что "batchcomplete - пустая строка" ", и он также принимает нормализованные данные.Но это говорит о том, что все внутри странного объекта 5119376 - ноль.Кстати, моя конечная цель состоит в том, чтобы получить доступ к URL, который дает основное изображение jpg страницы вики
Я получаю следующую ошибку:
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).
Мои структуры ниже,Я пытался как игнорировать объект 5119376, так и пытаться создать для него некую структуру, но безрезультатно
struct WikiStruct: Decodable {
var query: QueryStruct
var batchcomplete: String?
}
struct QueryStruct: Decodable {
var normalized: [NormalizedStruct]?
var pages: PageStruct?
}
struct NormalizedStruct: Decodable{
var from: String?
var to: String?
}
struct PageStruct: Decodable{
var pageid: Int?
var ns: Int?
var title: String?
var thumbnail: ThumbStruct?
var pageimage: String?
}
struct ThumbStruct: Decodable{
var source: String?//this is what I want
var width: Int?
var height: Int?
}