[
{
"cont": 9714494770,
"id": "1",
"name": "Kakkad"
},
{
"cont": 9714494770,
"id": "2",
"name": "Ashish"
}
]
Vyššie je json pole plnené objektmi JSON. Neviem, ako sa to dá analyzovať pomocou programu SwiftyJSON
odpovede:
11 pre odpoveď č. 1Príklad z SwiftyJSON prispôsobená vašim údajom:
let json = JSON(data: dataFromNetworking)
for (index, object) in json {
let name = object["name"].stringValue
println(name)
}
2 pre odpoveď č. 2
Za predpokladu, [{"id":"1", "name":"Kakkad", "cont":"9714494770"},{"id":"2", "name":"Ashish", "cont":"9714494770"}]
je priradený k vlastnosti s názvom jsonData.
let sampleJSON = JSON(data: jsonData)
let sampleArray = sampleJSON.array
sampleArray je voliteľné pole objektov JSON.
let firstDict = sampleArray[0]
firstDict je voliteľný príkaz JSON.
let name = firstDict["name"]
je voliteľný objekt JSON
let virtName = name.string
je voliteľný reťazec (v tomto prípade "Kakkad").
let realName = name.stringValue
realName je reťazec alebo prázdny reťazec.
Môžete tiež použiť:
let longName = sampleJSON[0]["name"].stringValue
Po inicializácii objektu JSON s údajmi všetky prvky sú typy JSON, kým ich neprevediete na rýchly typ.
- .string voliteľné (reťazec alebo null)
- reťazec StringValue alebo prázdny povrázok
- .dict voliteľne ([String: AnyObject] alebo null)
- .dictValue ([String: AnyObject] alebo String: AnyObject)
0 pre odpoveď č. 3
Pre Swift4 som aktualizoval kód z Moritzovej odpovede
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)
}
}
}
0 pre odpoveď č. 4
Swift 3 alebo 4 kód takto:
let json = JSON(yourData)
for (_, object) in json {
let cont = object["cont"].stringValue
print(cont)
}
Môžete dať index namiesto _ ak používate kdekoľvek vo svojom kóde. Ak nepoužívate premennú, je lepšie dať _ (XCode tiež dáva varovania).