为什么我的json编码对象在Swift中为nil


Why is my json-encoded object nil in Swift

我的swift代码与Jameson Quave在这个网站上找到的代码很接近。

在串行中,如果我打印ln(json),则值为零。然而,如果我打印ln(数据),我会得到数字。如果我println("Body: '(strData)"),我得到以下内容。如有任何帮助,我们将不胜感激。

以下是示例数据:

Body: Optional([
{
    "LocAddress": "2045 Broadway ",
    "City": "New York",
    "Region": "New York",
    "Country": "United States"
},
{
    "LocAddress": "6916 4th Ave",
    "City": "New York",
    "Region": "New York",
    "Country": "United States"
},
{
    "LocAddress": "Bleaker St.",
    "City": "New York",
    "Region": "New York",
    "Country": "United States"
},
{
    "LocAddress": "37-45 87th St",
    "City": "New York",
    "Region": "New York",
    "Country": "United States"
},
{
    "LocAddress": "88-35 249th St",
    "City": "New York",
    "Region": "New York",
    "Country": "United States"
},
{
    "LocAddress": "225 West 79th",
    "City": "New York",
    "Region": "New York",
    "Country": "United States"
}

])

如果有人问我这个问题,我深表歉意。我是stackoverflow的常客,在发布这个问题之前,我尽了最大努力寻找答案。

您的示例数据不是有效的JSON。不管怎样,它看起来可能是JSONP,如果您去掉了打开Body: Optional(和关闭),您就会得到有效的JSON。但是,如方括号所示,JSON是一个数组,您可以选择将其强制转换为字典。

您可以尝试先将其强制转换为NSArray,或者是作为字符串字典数组的[[String:String]]。如果使用NSArray路由,则可以迭代数组并将成员强制转换为NSDictionaries。