2016-05-09 2 views
0

Я пытаюсь выделить before, range и after из JSON ниже и хранить их в разных массивах/словарях. Однако я могу разобрать только range. Может ли кто-нибудь помочь с примером?Чтение JSON с несколькими словарями и массивами в Swift

{ 
    "before": [ 
     { 
      "segment": 1, 
      "end": 0, 
      "size": 0 
     }, 
     { 
      "segment": 2, 
      "end": 0.01, 
      "size": 0.1 
     } 
    ], 
    "range": [ 
     100, 
     101, 
     102, 
     103, 
     104, 
     105, 
     106, 
     107, 
     108, 
     109, 
     110 
    ], 
    "after": [ 
     { 
      "segment": 1, 
      "end": 0, 
      "size": 0 
     }, 
     { 
      "segment": 2, 
      "end": 0.5, 
      "size": 0.1 
     }, 
     { 
      "segment": 3, 
      "end": 0.8, 
      "size": 0.3 
     }, 
     { 
      "segment": 4, 
      "end": 1, 
      "size": 0.5 
     } 
    ] 
} 

ответ

1

Все, что вам нужно сделать, это сделать контент подходящим.

Вы объект JSON - это словарь; «before» представляет собой массив словарей, «после» аналогичен, а «range» - это массив Ints.

Зная это, легко расшифровать:

if let json = try? NSJSONSerialization.JSONObjectWithData(data, options: []) { 
    if let dict = json as? [String:AnyObject] { 
     if let before = dict["before"] as? [[String:AnyObject]] { 
      print(before) 
     } 
     if let after = dict["after"] as? [[String:AnyObject]] { 
      print(after) 
     } 
     if let range = dict["range"] as? [Int] { 
      print(range) 
     } 
    } 
}