JSON密钥以数字开头,使用Decodable时如何处理呢?

时间:2018-07-08 13:34:20

标签: json swift

我已经为接收的嵌套JSON设置了Decodable结构。

其中一个键以数字开头,我了解使用Decodable时,结构中的var应该与JSON结构中的键具有相同的名称,以便它可以自动解码。

键是“ 7d”,值是一个结构数组,如下所示:

"7d":[
      {
       "itemid":7,
       "categoryid":1,
       "name":"item"
      },
      {
       ...
      }
     ],
"cvn":[{...},{...}],
...

在接受问题How to decode a nested JSON struct with Swift Decodable protocol?的答案之后,我的RawDecodableStruct中有一个 item 结构,如下所示:

struct item: Decodable {
    var itemid: Int
    var category_id: Int
    var name: String
}

然后我有这个:

struct categories: Decodable {
    var 7d: [item]
    var cvn: [item]
    ...
}

对于7d行,我收到此错误:

“ d”不是整数文字中的有效数字

那我该如何处理这个问题?

我确实可以访问生成JSON数据的系统,因此我可以将密钥更改为不以数字开头的密钥,但是另一个客户端已经在该系统上工作,因此需要一些工作才能完成。适应一切。 Swift中是否有一些简单的解决方案,或者只是更容易更改密钥?

0 个答案:

没有答案