我试图在我的swift代码中访问JSON数据,但我无法正确返回它。这是我的JSON代码:
[
{
"id": "1",
"isImage": "0",
"name": "test name",
"post": "test post",
"time": "10:27",
"ip": "192.168.1.1",
"city ": "Columbus",
"latlong": "39.896418,-82.9751105",
"clientID": "clientID",
"popularity": "300"
},
{
"id": "2",
"isImage": "0",
"name": "test name two",
"post": "test post two",
"time": "13:37",
"ip": "192.168.1.1",
"city ": "Columbus",
"latlong": "39.896418,-82.9751105",
"clientID": "clientID",
"popularity": "69"
}
]
我想知道如何通过密钥json[0].['id']
或?来访问数据?
我目前正在使用此json.swift module并尝试使用
func jsonHandle(data: NSString) {
var parsedJSON = JSON(data)
var id = parsedJSON[0].["id"]
NSLog("\(id)")
}
但它什么也没有返回。任何想法?
答案 0 :(得分:2)
您可以致电JSON(string:...)
再现,并消除[0]
和["id"]
之间的时间段:
func jsonHandle(data: NSString) {
let parsedJSON = JSON(string: data)
var id = parsedJSON[0]["id"]
NSLog("\(id)")
}
或者,如果您有NSData
,则可以使用JSON(data: ...)
再现:
func jsonHandle(data: NSData) {
let parsedJSON = JSON(data: data)
let id = parsedJSON[0]["id"]
NSLog("\(id)")
}
或者,如果您想使用原生NSJSONSerialization
而不是第三方库,您可以:
func jsonHandle(data: NSData) {
var error: NSError?
let parsedJSON = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &error) as NSArray
let id = parsedJSON[0]["id"]
NSLog("\(id)")
}
就个人而言,我倾向于采用标准的NSJSONSerialization
方法,因为它是一种经过验证的方法,但那是你的号召。