[
{
"cont": 9714494770,
"id": "1",
"name": "Kakkad"
},
{
"cont": 9714494770,
"id": "2",
"name": "Ashish"
}
]
上面的一个是一个用 JSON 对象填充的 json 数组。我不知道如何用 SwiftyJSON 解析这个
[
{
"cont": 9714494770,
"id": "1",
"name": "Kakkad"
},
{
"cont": 9714494770,
"id": "2",
"name": "Ashish"
}
]
上面的一个是一个用 JSON 对象填充的 json 数组。我不知道如何用 SwiftyJSON 解析这个
SwiftyJSON页面中的示例,适用于您的数据:
let json = JSON(data: dataFromNetworking)
for (index, object) in json {
let name = object["name"].stringValue
println(name)
}
假设[{"id":"1", "name":"Kakkad", "cont":"9714494770"},{"id":"2", "name":"Ashish", "cont":"9714494770"}]
分配给一个名为 jsonData 的属性。
let sampleJSON = JSON(data: jsonData)
let sampleArray = sampleJSON.array
sampleArray 是 JSON 对象的可选数组。
let firstDict = sampleArray[0]
firstDict 是一个可选的 JSON 字典。
let name = firstDict["name"]
是一个可选的 JSON 对象
let virtName = name.string
是一个可选字符串(在本例中为“Kakkad”)。
let realName = name.stringValue
realName 是字符串或空字符串。
您还可以使用:
let longName = sampleJSON[0]["name"].stringValue
使用数据初始化 JSON 对象后,所有元素都是 JSON 类型,直到您将它们转换为 swift 类型。
Swift 3 或 4代码如下:
let json = JSON(yourData)
for (_, object) in json {
let cont = object["cont"].stringValue
print(cont)
}
如果您在代码中的任何位置使用 is,则可以使用index代替_ 。如果不使用变量,最好放 _ (XCode 也会给出警告)。
对于 Swift4,我已经更新了 Moritz 答案中的代码
if let path : String = Bundle.main.path(forResource: "tiles", ofType: "json") {
if let data = NSData(contentsOfFile: path) {
let optData = try? JSON(data: data as Data)
guard let json = optData else {
return
}
//If it is a JSON array of objects
for (_, object) in json {
let name = object["name"].stringValue
print(name)
}
}
}