我有一个json字符串:let jsonStr = {"username":"Jame"}
,我使用swiftyJson:let json = JSON(jsonStr)
。现在我想获取用户名,所以我尝试json["username"].string
,但结果是nil。
答案 0 :(得分: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 let
,do{} catch(let e){}
代替!
,try!