gpt4 book ai didi

ios - 从 JSON 响应创建字符串数组 Alamofire

转载 作者:行者123 更新时间:2023-11-30 11:13:23 25 4
gpt4 key购买 nike

我正在尝试从 JSON 响应创建一些数组。我正在使用 Alamofire 对象映射器。我不确定我是否正确映射了对象。

这是我的 JSON 响应

{
"status": "success",
"data": [
{
"id": 1,
"name": "EXERCISE",
"parent_id": null,
"children": [
{
"id": 2,
"name": "All Exercises",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 3,
"name": "Warmup",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 4,
"name": "Pliés",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 5,
"name": "Tendus (Slow)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 6,
"name": "Tendus (Fast)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 7,
"name": "Dégagés (Slow)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 8,
"name": "Dégagés (Fast)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 9,
"name": "Petits Battements",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 10,
"name": "Ronds de Jambe",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 11,
"name": "Adage",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 12,
"name": "Frappés",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 13,
"name": "Fondus",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 14,
"name": "Grands Battements",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 15,
"name": "Rises",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 16,
"name": "Stretch",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 17,
"name": "Tendus (Centre)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 18,
"name": "Adage/PDB (Centre)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 19,
"name": "Relevés",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 20,
"name": "Pirouettes",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 21,
"name": "Petit Allegro",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 22,
"name": "Medium Allegro",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 23,
"name": "Grand Allegro",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 24,
"name": "Men’s Allegro",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 25,
"name": "Traveling Centre (Odd Bits)",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 26,
"name": "Coda",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 27,
"name": "Révérence/Cool Down",
"parent_id": 1,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
}
],
"created_at": "2018-08-22 09:03:47",
"updated_at": "2018-08-22 09:03:47"
},
{
"id": 28,
"name": "LENGTH",
"parent_id": null,
"children": [
{
"id": 29,
"name": "All Lengths",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 30,
"name": "Short (__x4)",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 31,
"name": "Medium (__x8)",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 32,
"name": "Long (__x16)",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 33,
"name": "Marathon (__x32)",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
},
{
"id": 34,
"name": "Other",
"parent_id": 28,
"children": [],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
}
],
"created_at": "2018-08-22 09:03:48",
"updated_at": "2018-08-22 09:03:48"
}
]
}

这是我的模型类的片段

var Lid: Int?
var Fid: Int?
var Lname: String!
var Fname: String!

public override func mapping(map: Map) {
super.mapping(map: map)

Lid <- map["data.id"]
Lname <- map["data.name"]
Fid <- map["data.children.id"]
Fname <- map["data.children.name"]
}

当我调试时 - 我的模型类的属性为零。我怎样才能得到这个响应并最终得到 Lid 和 Lname 数组?

最佳答案

你可以做这样的事情

struct Exercise: Mappable {
var id: Int?
var name: String?
var parent_id: Int?
var childrens: [Exercise]?

init?(map: Map) {}
mutating func mapping(map: Map) {
id <- map["id"]
name <- map["name"]
parent_id <- map["parent_id"]
childrens <- map["children"]
}
}

像这样映射它们

func mapData(data: [String: Any]) {
//the data here is the JSON of yours

guard let exerciseArray = data["data"] as? [[String: Any]] else { return }

//now we should be able to map array
let mappedExercises = Mapper<Exercise>().mapArray(JSONArray: exerciseArray)
}

现在在新版本的 swift 中,您可以使用 Codable 协议(protocol)来处理模型的编码和解码。

关于ios - 从 JSON 响应创建字符串数组 Alamofire,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51975075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com