Swift - 嵌套JSON对象中的Parse数组不起作用

时间:2017-10-18 01:18:15

标签: ios json swift parsing dictionary

let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [.allowFragments])
        if let responseJSON = responseJSON as? [String:Any] {
            if let tJsonObj = xResponse["d"] as? [[String:Any]] {
               // not working here...
            }
        }

tJsonObj变量没有获取我的json数组内容。 我的json看起来像这样:

{"d": "[{\"title\":\"xxx\",\"timestamp\":\"2017-10-16 23:53:40\"},{\"title\":\"Mein Test iPhone 7\",\"timestamp\":\"2017-10-17 18:16:24\"}]"}

我希望有人可以提供帮助 - 谢谢!

2 个答案:

答案 0 :(得分:1)

d的值是另一个JSON字符串。您需要使用JSONSerialization两次

do {
  if let responseJSON = try JSONSerialization.jsonObject(with: data) as? [String:Any],
     let tJsonObj = responseJSON["d"] as? String {
        if let innerJSON = try JSONSerialization.jsonObject(with: Data(tJsonObj.utf8)) as? [[String:Any]] { 
           for item in innerJSON {
              print(item)
           }
        }
  }
} catch {
  print(error)
}

答案 1 :(得分:0)

d的内部JSON看起来已转义。有效的JSON应该类似于:

{"d": "[{"title":"xxx","timestamp":"2017-10-16 23:53:40"},...

你的JSON来自哪里?