Ios 根目录下的可编码句柄动态键
我已经看到过几个类似的问题,但我有不同的想法 所以我得到了如下所示的JSONIos 根目录下的可编码句柄动态键,ios,swift,codable,Ios,Swift,Codable,我已经看到过几个类似的问题,但我有不同的想法 所以我得到了如下所示的JSON var json = """ { "Array1": [ { "FinancialYear": "17-18" }], "Array2": [ { "FinancialYear": "17-18" }] } """ 问题是Array1和Array2键,这两个键似乎是动态的,并且是根键,可以更像Array3、Array4等 我想使用Codable,但由于根(Array1,Array2)上的动态键,我无法摆脱它 这是我
var json = """
{
"Array1": [
{
"FinancialYear": "17-18"
}],
"Array2": [
{
"FinancialYear": "17-18"
}]
}
"""
问题是Array1和Array2键,这两个键似乎是动态的,并且是根键,可以更像Array3、Array4等
我想使用Codable,但由于根(Array1,Array2)上的动态键,我无法摆脱它
这是我尝试过但不起作用的Struct
struct CodableJSON: Codable {
var response:[String:[ArrayInside]]
enum CodingKeys: String, CodingKey {
case response = "What should I write here ?" // What should be here ?
}
}
在这种情况下,只声明
ArrayInside
struct
struct ArrayInside: Decodable {
...
}
并将根对象解码为字典
let result = try JSONDecoder().decode([String:[ArrayInside]].self, from: data)
在这种情况下,只声明
ArrayInside
struct
struct ArrayInside: Decodable {
...
}
并将根对象解码为字典
let result = try JSONDecoder().decode([String:[ArrayInside]].self, from: data)
我认为这是不可能的。你必须改变结构你检查过这篇文章的答案了吗:@emrepun是的,我看到了,但如果你观察到句点是根键,所以没有问题,但我有动态根key@Tobi谢谢评论,我不能肯定。关于那件事。我不想在将来为更改密钥而烦恼。所以,我正在寻找一种通用的解决方案,它可以在所有情况下都像我所接受的答案一样工作。我认为这是不可能的。你必须改变结构你检查过这篇文章的答案了吗:@emrepun是的,我看到了,但如果你观察到句点是根键,所以没有问题,但我有动态根key@Tobi谢谢评论,我不能肯定。关于那件事。我不想在将来为更改密钥而烦恼。所以,我正在寻找一个通用的解决方案,它可以在所有情况下都像我所接受的答案一样有效。是的,应该有效!!我已经用很长的路线把它修好了,谢谢瓦迪安你总是建议最好的是的,那应该行!!我已经用很长的路线把它修好了,谢谢瓦迪安,你总是建议最好的