Ios 使用SwiftyJSON将JSON数组反序列化为Swift对象
考虑到这一点:Ios 使用SwiftyJSON将JSON数组反序列化为Swift对象,ios,json,swift,swifty-json,Ios,Json,Swift,Swifty Json,考虑到这一点: { "id" : 1, "name" : "Bananas", "rating" : 4 }, { "id" : 2, "name" : "Tacos", "rating" : 3 }, { "id" : 3, "name" : "Apple", "rating" : 5 } 如何使用SwiftyJSON创建Swift对象数组?我将从每个字典创建一个结构,并将结构存储在数组中 var
{
"id" : 1,
"name" : "Bananas",
"rating" : 4
},
{
"id" : 2,
"name" : "Tacos",
"rating" : 3
},
{
"id" : 3,
"name" : "Apple",
"rating" : 5
}
如何使用SwiftyJSON创建Swift对象数组?我将从每个字典创建一个结构,并将结构存储在数组中
var jsonObjectArray = JSON(swiftStr).array!
var swiftArray = []
for jsonObject in jsonObjectArray {
var swiftObject = SwiftObject()
swiftObject.propetyName = jsonObject["propertyName"].string!
swiftArry.append(swiftObject)
}
结构:
struct MyObject {
let id: Int
let name: String
let rating: Int
}
存储结构实例的数组:
var objects: [MyObject] = []
让SwiftyJSON解析您的JSON数据:
let jsonArray = JSON(data: myData)
创建结构并将其附加到新数组:
for (index, dict) in jsonArray {
let thisObject = MyObject(id: dict["id"].intValue, name: dict["name"].stringValue, rating: dict["rating"].intValue)
objects.append(thisObject)
}
现在您有了一个反映JSON内容的Swift结构数组(当然可以是类):
for object in objects {
print("ID: \(object.id), NAME: \(object.name), RATING: \(object.rating)")
}
印刷品:
ID:1,名称:香蕉,等级:4ID:2,名称:玉米饼,等级:3
ID:3,名称:苹果,评级:5 注意,我使用的是SwiftyJSON的非可选getter,
.intValue
和.stringValue
,因为我假设这些字段总是存在的。如果您认为可能存在nils,那么应该将struct属性设置为可选的,并使用可选的getter.int
和.string
for object in objects {
print("ID: \(object.id), NAME: \(object.name), RATING: \(object.rating)")
}