【问题标题】:Getting nil, null or unknown from SwiftyJSON从 SwiftyJSON 获取 nil、null 或 unknown
【发布时间】:2015-07-27 16:20:41
【问题描述】:
{
    "locations": [
      {
         "id": "#######################",
         "slug": "some slug",
         "name": "some name",
         "address": "some address",
         "characteristic": false,
         "program_types": [
            "Program 1"
         ],
         "category 1": false,
         "category 2": true,
         "category 3": false,
         "category 4": 4,
         "category 6": 0,
         "latitude": #######,
         "longitude": -###.####
      },
   ]
}

上面是我想与 SwiftyJSON 一起使用的 JSON(只有一个条目)。我正在使用 Alamofire 获取数据,当我从 Alamofire 打印时它显示得很好。

这是无效的代码。我已经尝试了在各种网站上找到的多种东西。

var json = JSON(data!)  //data is from alamofire
let Name = json[0].string
println(Name)

返回 `nil

此代码返回null

var json = JSON(data!)
let Name:JSON = json[0]["name"]
println(Name)

我不确定如何从 JSON 中返回一个简单的值。任何帮助将不胜感激。

【问题讨论】:

  • data!? “数据不”?鉴于你的结构,你可能想要json['locations'][0]['slug'] -> some slug
  • @MarcB: !(在此上下文中)是Swift programming language 中的“强制展开运算符”。
  • po data! 会得到什么?当你po json?
  • @MarcB 就是这样。 let Name:JSON = json["locations"][0]["category"] 有效。非常感谢。

标签: swift swifty-json


【解决方案1】:

@marcB 想出了正确的答案。这只是一个不正确的顺序问题。

此代码
let Name:JSON = json[0]["name"]

应该是
let Name:JSON = json["locations"][0]["category"]

【讨论】:

    【解决方案2】:

    检查json[0]的类型

    我猜应该是 AnyObject

    什么意思,你需要这样贬低它

    Let Name = json[0] as! [String:NSDictionary]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多