Ios 获取api swift可编码和模型数据中的位置
我从这样的api获取数据Ios 获取api swift可编码和模型数据中的位置,ios,swift,codable,Ios,Swift,Codable,我从这样的api获取数据 [ { "internData": { "id": "abc123", "name": "Doctor" }, "author": "Will smith", "description": "Is an actor", "url": "https://www", }, { "internData": { "id": "qwe900", "name": "Const
[
{
"internData": {
"id": "abc123",
"name": "Doctor"
},
"author": "Will smith",
"description": "Is an actor",
"url": "https://www",
},
{
"internData": {
"id": "qwe900",
"name": "Constructor"
},
"author": "Edd Bett",
"description": "Is an Constructor",
"url": "https://www3",
}
]
struct PersonData: Codable {
let author: String?
let description: String?
let url: String?
}
我有这样的模型
[
{
"internData": {
"id": "abc123",
"name": "Doctor"
},
"author": "Will smith",
"description": "Is an actor",
"url": "https://www",
},
{
"internData": {
"id": "qwe900",
"name": "Constructor"
},
"author": "Edd Bett",
"description": "Is an Constructor",
"url": "https://www3",
}
]
struct PersonData: Codable {
let author: String?
let description: String?
let url: String?
}
但我不知道如何定义“internData”,我尝试了另一个模型“InterData”,并像PersonData一样定义id和名称,但我得到了一个错误,我也尝试了[String:Any],但我得到了一个可编码协议的错误
我正在使用
let resP = try JSONSerialization.jsonObject(with: data, options: .init()) as? [String: AnyObject]
print("resP", )
在我的服务/网络脚本中
如果有人知道
您不能在可编码的情况下使用[String:Any]
类型,谢谢。您需要创建另一个InternData
模型,该模型由PersonData
使用
代码:
JSON数据:
let jsonData =
"""
[
{
"internData": {
"id": "abc123",
"name": "Doctor"
},
"author": "Will smith",
"description": "Is an actor",
"url": "https://www",
},
{
"internData": {
"id": "qwe900",
"name": "Constructor"
},
"author": "Edd Bett",
"description": "Is an Constructor",
"url": "https://www3",
}
]
"""
//模型
struct PersonData: Codable {
let author: String?
let description: String?
let url: String?
let internData : InternData?
}
// New model
struct InternData : Codable {
let id : String?
let name : String?
}
//解析
do {
let parseRes = try JSONDecoder().decode([PersonData].self, from: Data(jsonData.utf8))
print(parseRes)
}
catch {
print(error)
}
请不要建议打印本地化描述
,在解码上下文中,始终打印错误
实例localizedDescription
显示了一条无意义的一般错误消息。jsonData是什么?您可以使用Data
的对象(数据)。我得到这个错误err valueNotFound(Swift.String,Swift.DecodingError.Context(编码路径:[\u JSONKey(stringValue:“索引0”,intValue:0),编码键(stringValue:“interData”,intValue:nil),CodingKeys(stringValue:“id”,intValue:nil)],debugDescription:“应为字符串值,但找到的却是null。”,underyingError:nil))