我有一个 UITableview,我需要从 JSON
填充数据。
我正在使用 MVC 架构。但是我在将值附加到模型时遇到错误
class DisplayAttendanceModel { let name: String? let date: String? let subject: String? let status: String? init(name: String, date:String, subject:String, status:String) { self.name = name self.date = date self.subject = subject self.status = status }
var arrData = [DisplayAttendanceModel]()
let headers : HTTPHeaders = ["Authorization":"token" + " " + ProfileAuth]
let params : [String:Any] = [
"date":"15/07/2019",
"course_id":1,
"batch_id":1,
"subject_id":1
]
Alamofire.request(displayURL, method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in
if((response.result.value) != nil) {
var jsonVAr = JSON(response.result.value!)
if let da = jsonVAr["attendence"].arrayObject {
self.data = da as! [[String:AnyObject]]
print(self.data)
for item in self.data {
print(item["student__first_name"] ?? "NO")
var names = item["student__first_name"]?.stringValue
self.arrData.append(DisplayAttendanceModel(name: names ?? "", date: names ?? "", subject: names ?? "", status: names ?? ""))
}
我的 JSON 响应是:
"attendence": [
{
"attendance_time": "15:35:34.787322",
"student__last_name": "acharya",
"student__first_name": "mahendra",
"subject__name": "Physiology",
"attendance_date": "2019-07-15",
"status": 1
}
如何将这些值附加到模型类,我们将不胜感激。
最佳答案
你应该像这样创建模型:
模型
class Attendence: Codable {
var attendence: [DisplayAttendanceModel]?
}
class DisplayAttendanceModel: Codable {
let firstName: String?
let lastName: String?
let date: String?
let time: String?
let subject: String?
let status: Int?
enum CodingKeys: String, CodingKey {
case firstName = "student__first_name"
case lastName = "student__last_name"
case date = "attendance_date"
case time = "attendance_time"
case subject = "subject__name"
case status
}
}
然后你可以这样使用:
请求
Alamofire.request(displayURL, method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in
if response.result.value != nil {
guard let data = response.data { return }
do {
let myData = try JSONDecoder().decode(Attendence.self, from: data)
print("myData is: \(myData)")
} catch let error {
print(error)
// Do something in error case
}
希望一切顺利
享受吧。
关于swift - 如何将值从 JSON 添加到模型,在我下面的代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57055751/