json - 当某些值甚至不是 nil(缺失或不存在)时,我如何快速处理 JSON 对象

标签 json swift

大家好,我有一个 json 对象,存在不规则响应的问题,有时它不会发送我的模型中的一些键和值,例如:

struct GetComments: Codable {
   let name, surname: String
   let photoPath: String
   let commentid, comment, date: String
   let commentOwner: String
   let id : String
   let email: String
}

我尝试为模型提供一些初始值,如下所示,但它仍然崩溃:

struct GetComments: Codable {
   let name, surname: String = “”
   let photoPath: String = “”
   let commentid, comment, date: String = “”
   let commentOwner: String = “”
   let id : String = “”
   let email: String = “”
}

充满了我的 json 对象,例如:

{
   “name”:"Calvin",
   “surname”:“Harris”,
   “photoPath”: "https://image.flaticon.com/icons/png/128/181/181549.png",
   “commentid”: “ASHF579OTUJKDH475870987NBMVK”,
   “comment”: “hello everyone”,
   “date”: “11/06/2019",
   “commentOwner”: “Calvin Harris”,
   “id”: “LHKHOYIYU9OTUJKDH475870987NBMVK”,
   “email”: “calvin@test.com”
}

当我收到它时问题就开始了:

{
       “name”:“Calvin”,
       “surname”:“Harris”,
       “commentid”: “ASHF579OTUJKDH475870987NBMVK”,
       “comment”: “hello everyone”,
       “date”: “11/06/2019",
       “commentOwner”: “Calvin Harris”,
       “id”: “LHKHOYIYU9OTUJKDH475870987NBMVK”,
    }

最佳答案

只需将结构成员声明为可选,可以是nil

struct GetComments: Codable {
   let name, surname: String
   let photoPath: String? // can also be decoded as URL?
   let commentid, comment, date: String
   let commentOwner: String
   let id : String
   let email: String?
}

关于json - 当某些值甚至不是 nil(缺失或不存在)时,我如何快速处理 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56558054/

相关文章:

macos - 新窗口打开不正确

text - 使用 Swift 更改文本颜色

python - JSON 文件 I/O : Extra Data Error

javascript - oboe.js - 选择特定 Node 而不是所有匹配的模式?

android - 解析 JSON,数组中的数组 (Android)

ios - 如何在 UIViewcontroller 中访问已安装的 pod 库宏字符串?

ios - 在tableview上添加子tableview

ios - 运行函数之间的 Swift 时间

json - 去 json.Unmarshal 不工作

java - 我如何将一串 jsonObjects 拆分成一个数组