2016-12-07 3 views
-1

Я пытаюсь разобрать сложный файл JSON в Swift 3. У меня возникли проблемы с получением значений. Я нашел некоторый пример кода и попытался немного его настроить, но он не работает. В настоящее время я получаю сообщение об ошибке «Тип NSArray?» Не имеет элементов подстроки «... Я даже не уверен, что это правильный способ сделать Это. Прикрепление скриншотов JSON о любых советах о том, как правильно разобрать, это действительно ценится.Parse inested JSON Swift 3

Вот мой текущий код:

let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject 

let mainlistJson = jsonResult["mainlist"]as? NSArray 

if let items = mainlistJson["items"] as? NSArray 
{ 
for item in items { 
if let description = item["description"]as? String { 
print(description) 
} } } 

json sample

+6

Проведите исследование, есть сотни подобных вопросов с ответами. Кроме того, вы увидите, что вам не нужно использовать NSArray в Swift, просто используйте типизированный массив Swift. Посмотрите на существующие ответы, прежде чем задавать одно и то же. Благодарю. – Moritz

ответ

2

Не используйте NSArrayNSDictionary или в Swift. Вы должны использовать Массивы и Словари из стандартной библиотеки Swift.

Для массивов, вы можете использовать: [Any]

Для словарей: [String: Any]

Тогда вы будете иметь возможность получить доступ к содержимому с помощью индексов.

+0

По-прежнему получают ошибку Тип [Любой]? не имеет подстрочных индексов – KirillC

+0

@KirillC Прочтите это: https://developer.apple.com/swift/blog/?id=37 – Moritz

+0

Эта документация дает общую информацию. Я могу получить второе предложение, но я все еще получаю ошибки, когда я попытайтесь перейти к описанию. Большинство примеров в других сообщениях показывают более простые JSON. у меня есть несколько уровней, и я просто не могу понять, код получает эти значения ... – KirillC