gpt4 book ai didi

swift - 在嵌套的字符串数组上使用 Swift decodable

转载 作者:行者123 更新时间:2023-11-28 10:05:07 25 4
gpt4 key购买 nike

我正在尝试解码一个字符串数组,其中返回的 JSON 是一个字符串数组,但也包含嵌套数组

喜欢:

{ "people": ["Alice", "Bob"], 
"departments": [["Accounts", "Sales"]]
}

我的 Swift 代码:

let decoder = JSONDecoder()
let model = try decoder.decode([String:[String]].self, from: dataResponse)
print(model as Any)

我希望能够解码部门,但每次我这样做都会提示:

Error typeMismatch(Swift.String,Swift.DecodingError.Context(codingPath:[_DictionaryCodingKey(stringValue: "departments", intValue: nil),_JSONKey(stringValue: "Index 0", intValue: 0)], debugDescription: "Expected to decode String but found an array instead.",underlyingError: nil))

我知道这是因为解码器需要一个带有字符串数组的字符串

我想知道我是否也可以告诉它期待多个嵌套的字符串数组。

最佳答案

您只需要创建适当的结构并将其传递给解码器:

struct Root: Decodable {
let people: [String]
let departments: [[String]]
}

let decoder = JSONDecoder()
do {
let model = try decoder.decode(Root.self, from: dataResponse)
print(model.people) // ["Alice", "Bob"]\n"
print(model.departments) // [["Accounts", "Sales"]]\n"
} catch {
print(error)
}

关于swift - 在嵌套的字符串数组上使用 Swift decodable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54971424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com