Я пытаюсь разобрать данные JSON с помощью Swift from Guidebox. Пример данных, как это:Анализ данных JSON в Swift из API-интерфейса API
{
"results": [
{
"id": 14673,
"title": "The Golden Girls",
"alternate_titles": [
"Golden Palace"
],
"container_show": 0,
"first_aired": "1985-09-14",
"imdb_id": "tt0088526",
"tvdb": 71292,
"themoviedb": 1678,
"freebase": "\/m\/01fszq",
"wikipedia_id": 217200,
"tvrage": {
"tvrage_id": 5820,
"link": "http:\/\/www.tvrage.com\/shows\/id-5820"
},
"artwork_208x117": "http:\/\/static-api.guidebox.com\/120214\/thumbnails_small\/14673-9570342022-208x117-show-thumbnail.jpg",
"artwork_304x171": "http:\/\/static-api.guidebox.com\/120214\/thumbnails_medium\/14673-3759246217-304x171-show-thumbnail.jpg",
"artwork_448x252": "http:\/\/static-api.guidebox.com\/120214\/thumbnails_large\/14673-2249565586-448x252-show-thumbnail.jpg",
"artwork_608x342": "http:\/\/static-api.guidebox.com\/120214\/thumbnails_xlarge\/14673-6064109057-608x342-show-thumbnail.jpg"
}
],
"total_results": 1,
"development_api_key": "You are currently using a temporary development API key. This API key is for testing only. You have used 57 of 250 available calls. Please see the API docs (http:\/\/api.guidebox.com\/apidocs) for additional information or to generate a production API key."
}
Кажется, что для моего случая, самый простой способ использования данных будет преобразовать его в [String: Any], как и все, что мне действительно нужно «идентификатор «название» и значение произведения искусства. Однако все (бесчисленные) методы, которые я использовал, терпят неудачу из-за того, что «alternate_titles» анализируется как NSArray, и это делает все более сложным. До сих пор я пытался вариации этого метода:
do {
let jsonResult = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String: Any]
let datafinal = jsonResult["results"] as! [String: Any]
//Fails around here usually, when the data is converted to [String: Any] or [Any:Any] because of the array.
let title = datafinal["title"]
} catch {
print("JSON Preocessing failed")
}
Я также использовал библиотеку SwiftyJSON, чтобы попытаться преобразовать данные в более легко читаемом формате JSON, но методы, чтобы вытащить словарь из него всегда терпит неудачу (Я полагаю, из-за структуры тоже). У любого есть простой способ получить данные JSON из URL-адреса и легко получить доступ к значениям в «результатах»? Любая помощь высоко ценится!
вы можете поделиться ваши усилия? –
Попробуйте это сделать 'do { let jsonResult = попробуйте JSONSerialization.jsonObject (с помощью: data !, options: JSONSerialization.ReadingOptions.mutableContainers) как! [String: Any] let datafinal = jsonResult ["results"] as! NSArary // Обычно происходит сбой вокруг, когда данные преобразуются в [String: Any] или [Any: Any] из-за массива. название ЛПЭ = datafinal [0] .value (forKey: "название") печать ("\ (название)") } поймать { печать ("JSON Preocessing не удалось") } ' –
создать класс модели и анализировать он использует объект mapper. –