我有这种数据。但我尚未将其序列化为JSON
{
"status":"ok",
"totalResults":5899,
"articles":[{//some key value pairs},
{//some key value pairs}
]
}
我想使用可解码协议解析文章数组。
如果我只有articles数组,我知道该怎么做,但是在上述情况下,我如何首先找到商品的数据,然后使用JSONDecodable将其解析为模型。
答案 0 :(得分:3)
首先声明这些类型的结构。
struct Root : Decodable {
let status : String
let totalResults : Int
let articles : [Article]
}
struct Article : Decodable {
{//some key value pairs},
{//some key value pairs}
}
假设 json 字符串为 jsonStr 。
现在,将此json转换为data
。
let data = Data(jsonStr.utf8)
现在尝试解码此数据。
let decodedStruct = fromJSON(data)
这是fromJSON()
方法的定义
static func fromJSON(jsonData: Data) -> Root? {
let jsonDecoder = JSONDecoder()
do {
let root = try jsonDecoder.decode(Root.self, from: jsonData)
return root
} catch {
return nil
}
}
答案 1 :(得分:2)
字典变成结构,字典数组变成结构数组
struct Root : Decodable {
let status : String
let totalResults : Int
let articles : [Article]
}
struct Article : Decodable {
let aKey : AType
let anotherKey : AnotherType
}