Alamofire と SwiftyJSON を使用して、API からデータを取得および管理しています。最初のリクエストを行った後、JSON 型のネストされたコレクションになります。
SwiftyJSON によると、次のようにデータをループできます https://github.com/SwiftyJSON/SwiftyJSON#loop
for (key: String, subJson: JSON) in json {
//Do something you want
}
繰り返しますが、SwiftyJSON によると、次のように新しい値を設定できるはずです: https://github.com/SwiftyJSON/SwiftyJSON#setter
json["name"] = JSON("new-name")
ネストされたデータのコレクションがあり、好きなだけ深く掘り下げることができますが、オブジェクトを変更して新しいキーと値のペアを設定することはできません。Swiftでこれを行うにはどうすればよいですか?
これが私のコードです:
for (key: String, stop: JSON) in stops {
var physicalStops = stop["physicalStops"]
for (key: String, physicalStop: JSON) in physicalStops {
println("Prints out \(physicalStop) just fine")
// physicalStop["myNewkey"] = "Somevalue" // DOES NOT WORK (@lvalue is not identical to 'JSON)
// physicalStop["myNewkey"] = JSON("Somevalue") //SAME Story
}
}
基本的に、元の JSON オブジェクトとまったく同じ構造を維持したいのですが、各サブ オブジェクトの 2 番目のレベルのネストに key:value を追加します。