Hier ist die JSON Ich bin vom Server bekommen:Wie erstelle ich ein Array von Objekten basierend auf einem Array von JSON-Objekten mit SwiftyJSON (in Swift)?
{
"items": [
{
"name": "Shampoo",
"price": 9
},
...
]
}
Hier ist meine Item
Klasse in Swift:
class Item {
var name: String
var price: Float
init(name: String, price: Float) {
self.name = name
self.price = price
}
}
Ich mag ein Item
Objekt für jedes JSON-Objekt in den items
Array erstellen SwiftyJSON mit . Also dachte ich, ich würde einfach das Swift-Array durchlaufen, das SwiftyJSON für mich erstellen wird und voila. SwiftyJSON gibt jedoch einen Fehler aus, der besagt, dass items
kein Array ist. Ich habe versucht, es als Wörterbuch zu subskribieren, aber Sie können nicht (ich dachte, Sie könnten) ein Wörterbuch in einer For-Schleife durchlaufen.
Hier ist der Code, den ich versucht habe:
let json = JSON(data: data) // data is the JSON from the server (above) and isn't nil
let items = json["items"].array // this is nil and where SwiftyJSON throws the error.
// error checking and optional unwrapping etc.
for item in items {
var itemsList: [Item] = []
itemsList.append(Item(name: item["name"], price: item["price"]))
}
Ich fühle mich wie das ist ziemlich einfach sein sollte also wenn jemand finden kann, wo ich schief gelaufen Ich würde es wirklich schätzen. Vielen Dank!
Versuchen Sie, 'json [" items "]' zu drucken und zu sehen, was es ist? – kennytm
@kennytm Es sieht aus wie ein Tupel mit dem rohen JSON als String und Array, das null ist. – Jake
überprüfen, ob das ursprüngliche JSON korrekt formatiert ist? – kennytm