/ / SwiftyJSON prepletené cez pole objektov JSON - json, swift, swifty-json

SwiftyJSON prechádza cez rad objektov JSON - json, swift, swifty-json

[
{
"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ď č. 1

Prí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).