swift SwiftyJSON获得价值

时间:2015-12-11 01:09:34

标签: ios json swift swifty-json

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

1 个答案:

答案 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 letdo{} catch(let e){}代替!try!