Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 根目录下的可编码句柄动态键_Ios_Swift_Codable - Fatal编程技术网

Ios 根目录下的可编码句柄动态键

Ios 根目录下的可编码句柄动态键,ios,swift,codable,Ios,Swift,Codable,我已经看到过几个类似的问题,但我有不同的想法 所以我得到了如下所示的JSON var json = """ { "Array1": [ { "FinancialYear": "17-18" }], "Array2": [ { "FinancialYear": "17-18" }] } """ 问题是Array1和Array2键,这两个键似乎是动态的,并且是根键,可以更像Array3、Array4等 我想使用Codable,但由于根(Array1,Array2)上的动态键,我无法摆脱它 这是我

我已经看到过几个类似的问题,但我有不同的想法

所以我得到了如下所示的JSON

var json = """
{
"Array1": [
{
"FinancialYear": "17-18"

}],
"Array2": [
{
"FinancialYear": "17-18"
}]
}
"""
问题是Array1Array2键,这两个键似乎是动态的,并且是根键,可以更像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谢谢评论,我不能肯定。关于那件事。我不想在将来为更改密钥而烦恼。所以,我正在寻找一个通用的解决方案,它可以在所有情况下都像我所接受的答案一样有效。是的,应该有效!!我已经用很长的路线把它修好了,谢谢瓦迪安你总是建议最好的是的,那应该行!!我已经用很长的路线把它修好了,谢谢瓦迪安,你总是建议最好的