gpt4 book ai didi

ios - 如何使用可编码解码保存动态对象的嵌套 json 键

转载 作者:行者123 更新时间:2023-11-30 11:42:32 25 4
gpt4 key购买 nike

我收到以下格式的一些网络响应,问题是 testMap 是动态类型。对象的键以及数据类型是动态的。 testMap 将是一个字典类型对象,它将在其动态键中包含动态数据。正如你所看到的,它可以是字符串、字符串数组或整数数组。

{"results": [
{"tests": [{
"testsType": "A",
"testMap": {
"testId": "5a7c4fedec7fb72b7aa9b36e"}}]
},
{
"tests": [{
"testsType": "B",
"testMap": {
"myIds": ["2112"]}}]
}]
}

我尝试use this answer但它不起作用,因为在我的情况下值类型未知。 testMap:[String:Any] 不起作用,因为 Any 不符合 Codable

型号

struct Results: Codable
{
let results: [Tests]
}
struct Tests: Codable
{
let tests: [Test]
}
struct Test: Codable
{
let testsType: String?
var testMap:[String:String] // Its wrong, cause value type is unknown
}

最佳答案

这将解码您的 JSON:

struct Results: Codable {
let results: [Tests]
}

struct Tests: Codable {
let tests: [Test]
}

struct Test: Codable {
let testsType: String
let testMap: TestMap
}

struct TestMap: Codable {
let testId: String?
let myIds: [String]?
}

而且,显然:

do {
let result = try JSONDecoder().decode(Results.self, from: data)
print(result)
} catch {
print(error)
}

关于ios - 如何使用可编码解码保存动态对象的嵌套 json 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49181230/

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