【问题标题】:swift SwiftyJSON to get value快速 SwiftyJSON 获取价值
【发布时间】:2015-12-11 01:09:34
【问题描述】:

我有一个 json 字符串:let jsonStr = {"username":"Jame"},我使用 swiftyJson:let json = JSON(jsonStr)。现在我想获取用户名,所以我尝试json["username"].string,但结果为nil。

【问题讨论】:

  • 代码是否存在编译错误:let jsonStr = {"username":"Jame"}

标签: ios json swift swifty-json


【解决方案1】:

首先,你应该使用

let jsonStr = "{\"username\":\"Jame\"}"

而不是

let jsonStr = {"username":"Jame"}

如果jsonStr 只是String,则需要将String 转换为Dictionary。 JSON 初始化程序需要 Dictionary 的实例。试试这个:

let jsonStr = "{\"username\":\"Jame\"}" // string
let jsonData = jsonStr.dataUsingEncoding(NSUTF8StringEncoding)! // string->NSData
let jsonDic = try! NSJSONSerialization.JSONObjectWithData(jsonData, options: .AllowFragments) // NSData->Dictionary
let json = JSON(jsonDic) // good!
print(json)
let name = json["username"].string
print(name) // Optional("Jame")

更安全的是,您使用if letdo{} catch(let e){} 而不是!try!

【讨论】:

  • 我对你做了几乎同样的事情。但是没有'let jsonDic = try! NSJSONSerialization.JSONObjectWithData(jsonData, options: .AllowFragments) // NSData->Dictionary' ,它仍然可以正常工作。
猜你喜欢
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多