NSJSONSerialization.JSONObjectWithData returns 奇怪的数组而不是字典

NSJSONSerialization.JSONObjectWithData returns weird array instead of dictionary

我正在尝试从这样的 HTTP 响应中解析数据:

let dataDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSMutableDictionary

结果我得到了这个非常奇怪的数组:

(lldb) po dataDictionary
▿ 3 elements
▿ [0] : 2 elements
  - .0 : message
  - .1 : http://abc.abc
▿ [1] : 2 elements
  - .0 : xyz
  - .1 : 1234
▿ [2] : 2 elements
  - .0 : status
  - .1 : ok

这是我收到的数据(格式很好,没有换行符):

{
 "message": "http://abc.abc",
 "xyz": "1234",
 "status": "ok"
}

这是编码问题吗?这里发生了什么?

它不是一个数组,它是你的 NSMutableDictionary。

在调试器中打印时看起来像这样:有 3 个条目,每个条目都有一个键和一个值。

dataDictionary 上执行 ALT+CLICK 并阅读 Xcode 提示,您会看到类型。