【发布时间】:2019-09-14 01:33:30
【问题描述】:
第一个问题: 我正在使用这个 JSON 类型的 API,但是有一些不一致的数据,在下面的示例中,有一个度量数组,有时只包含“uri”和“label”,但有时它有一个嵌套数组“合格的 ”。我正在尝试使用结构在 Swift 9.2 版中对此进行解码。如何处理不一致的数组?
第二个问题:“措施”在某些地方被称为“措施”。如何处理不一致的标签?
"measures" : [ {
"uri" : "http://www.edamam.com/ontologies/edamam.owl#Measure_serving",
"label" : "Serving"
}, {
"uri" : "http://www.edamam.com/ontologies/edamam.owl#Measure_stalk",
"label" : "Stalk",
"qualified" : [ [ {
"uri" : "http://www.edamam.com/ontologies/edamam.owl#Qualifier_medium",
"label" : "medium"
}]]
}]
struct Hints: Codable {
let food: Food
let measures: [Measure]
}
struct Measure: Codable {
let uri: String
let label : String
let qualified : [[Qualified]]
}
struct Qualified: Codable {
let uri: String
let label : String
}
I really appreciate your help.
【问题讨论】:
-
实现你自己的
init(from decoder: Decoder)。阅读文档:developer.apple.com/documentation/foundation/… -
您可以使用 ObjectMapper pod,从 Mappable 扩展类并创建映射。对象映射器将自动处理从/到 JSON 的映射,如果 JSON 文件中缺少任何键,它会将其值设置为 nil。一、贴一段代码,说明需要时如何使用!
标签: arrays json swift struct decoding