[
{
"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类型。
对于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)
}
}
}
Swift 3或4 类似这样的代码:
let json = JSON(yourData)
for (_, object) in json {
let cont = object["cont"].stringValue
print(cont)
}
如果你在代码中使用index,可以将其替换为_。如果你不使用一个变量,最好使用_(XCode也会发出警告)。
“ ... ”
:) - Martin R