如何为这个json数据创建模型类?
{
total: 41,
totalPages: 4,
valueData: [
{
id: "23",
lastLogin: "0-Jul-2011 11:27:36 AM",
name: "varii"
},
{
id: "24",
lastLogin: "0-Jul-2015 11:27:36 AM",
name: "sarii"
},
{
id: "25",
lastLogin: "0-Jul-2018 11:27:36 AM",
name: "narii"
} ]
}
class OnResponse {
var total: Int?
var totalPages: Int?
init(response: [String: Any]) {
self.total = response["total"]
self.totalPages = response["totalPages"]
}
}它不工作,如何让它准备好工作,如何将值传递到控制器再到模型,以及如何从模型中获取值
发布于 2017-07-13 17:22:45
遵循下面的类结构
class Response {
var total: Int?
var totalPages: Int?
var valueData: [LoginData]?
init(response: [String: Any]) {
self.total = response["total"]
self.totalPages = response["totalPages"]
var items:[LoginData] = ()
for (data in response["valueData"]) {
let login = LoginData(name: data["name"], lastLogin: data["lastLogin"])
items.append(login)
}
self.valueData = items
}
}
class LoginData {
var name: String?
var lastLogin: String?
init(name: String, lastLogin: String) {
self.name = name
self.lastLogin = lastLogin
}
}发布于 2017-07-13 17:17:47
您的响应模型:
struct ModelName {
var total: Int?
var totalPage: Int?
var reverseMatches: [LoginDetails]?
}
struct LoginDetails {
var id: String?
var lastLogin: String?
var name: String?
}解析api响应并为相应字段赋值。我做了,所有的变量都是可选的。
赋值如下所示。
var obj = Model()
obj.total = response["total"] as? Intobj应该为var,因为您将更改struct的值。因为struct是value based,而不是reference based
发布于 2017-07-13 17:29:20
您应该使用"reverseMatches“来检索数组,而不是"data”。也许你可以使用第三个库来将你的json数据转换成一个模型,比如Unbox,https://github.com/JohnSundell/Unbox。
https://stackoverflow.com/questions/45076293
复制相似问题