json - 使用 Codable 从 JSON 解析嵌套数据
问题描述
我正在尝试从 JSON 响应中解析嵌套数据,但没有成功。以下是我到目前为止尝试过的内容以及尝试解析的 json 响应。
// JSON
{
"statusCode": 200,
"success": true,
"data": {
"tDetail": [
{
"roleId": null,
"id": 34,
"userId": 126,
"catId": null,
"importId": null,
"name": "My task from postman",
"myday": 1,
"important": 0,
"completed": 0,
"dateCreated": "2020-02-10T09:05:04.000Z",
"dateModified": "2020-02-10T09:05:04.000Z"
}
],
"steps": [],
"files": [],
}
}
// 结构体
struct MyDayAndTaskDetails: Codable
{
let data : [MyTaskDetail]
}
struct MyTaskDetail : Codable {
let roleId, taskId, userId, catId, important, completed, recurring, myday : Int?
let repeatType, name, duedate, reminder, frequency, weekdays, notes, baseurl : String?
let steps : [Steps]
let files : [Files]
private enum CodingKeys: String, CodingKey {
case taskId = "id"
case userId = "userId"
case roleId = "roleId"
case catId = "catId"
case myday = "myday"
case name = "name"
case notes = "notes"
case duedate = "duedate"
case reminder = "reminder"
case recurring = "recurring"
case repeatType = "repeatType"
case important = "important"
case completed = "completed"
case frequency = "frequency"
case weekdays = "weekdays"
case baseurl = "baseurl"
case steps = "Steps"
case files = "Files"
}
}
struct Steps : Codable {
let stepName : String?
let status, stepId : Int?
private enum CodingKeys: String, CodingKey {
case stepName = "stepName"
case status = "status"
case stepId = "stepId"
}
}
struct Files : Codable {
let fileName : String?
private enum CodingKeys: String, CodingKey {
case fileName = "fileName"
}
}
解决方案
你错过了一级
struct MyDayAndTaskDetails: Codable {
let data : Detail
}
struct Detail: Codable {
let tDetail: [MyTaskDetail]
let steps : [Steps]
let files : [Files]
}
等等
推荐阅读
- java - 如何将 .jar 文件添加到 BlueJ 项目?
- java - 类初始化死锁机制解释
- r - 数据操作在R中的新行中按日期聚合值
- c++ - 我可以使用 std::align 将内存对齐到任意值 2 吗?
- r - group_by + nest 的高性能替代方案
- tmux - 尝试使用 byobu 复制和粘贴
- c# - 试图在模板字段旁边添加下拉列表
- android - 如何将新材质BottomAppBar实现为BottomNavigationView
- javascript - for 循环和解构
- common-lisp - Error In = of (NIL 1) 参数的类型应为 NUMBER。通用 Lisp