2016-03-10 3 views
1

У меня есть данные JSON, которые выглядят как this, которые я пытаюсь разобрать в Swift.Как разобрать JSON в Swift?

[ 
    [ 
    { 
     a: "1", 
     b: "2" 
    }, 
    [ 
     { 
      c: "3", 
     }, 
     { 
      d: "4", 
     } 
    ] 
] 

]

 let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) 

     if let myArray = json[0] as? [[AnyObject]] { 
      for myObject in myArray { 
       print("This works!\(myObject)") 
      } 
     } 

Однако ничего я стараюсь не похоже на работу - любая помощь будет оценена.

ответ

0

вы можете использовать SwiftyJSON - https://github.com/SwiftyJSON/SwiftyJSON

или создать класс, основанный на вашей схеме JSON попытаться разобрать с ним.

как:

class object 
{ 
    let data = Array<subObject>() 
} 
class subObject 
{ 
    let subData = Array<Dictionary<AnyObject,AnyObject>>() 
} 
0

Этот фрагмент кода не JSON. Если бы это было в формате JSON, ключи были бы строки, например:

[ 
    [ 
    { 
     "a": "1", 
     "b": "2" 
    }, 
    [ 
     { 
      "c": "3", 
     }, 
     { 
      "d": "4", 
     } 
    ] 
] 
] 

И в любом случае в скриншоте мы видим, что ваш JSON уже разобраны!

Что вы показываете на изображении не JSON либо, но массив, содержащий массивы и словари ...


Но предположим, что ваш JSON фактически действует и недостающие кавычки просто копировать/вставить проблема.

Тогда для достижения вашей цели, вы должны бросить результат NSJSONSerialization в правильный формат JSON, затем вы можете получить доступ к внутренним объектам.

Как это, например:

do { 
    if let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [[AnyObject]] { 
     if let myArray = json.first { 
      for myObject in myArray { 
       print("This works!\(myObject)") 
      } 
     } 
    } 
} catch let error as NSError { 
    print(error.localizedDescription) 
} 
Смежные вопросы