2017-10-28 120 views
1

我有一个从API中提取的JSON数据,其中一个关键是"24h_volume"如何超越Swift 4的Var命名限制?

当我试图把24h_volume作为不断Decodable struct给我的错误中:

Expected a digit after integer literal prefix.

据我了解,雨燕语法不允许变量名以数字。

什么是最简单的方法来超越这个限制,并成功从源头拉数据?

+0

问题是什么? Swift属性不必与JSON字典键具有相同的名称。 –

+0

当我在Swift 4中解码JSON时,它将所有的值赋给它们在类中的相对名称。所以当我给类中的常量赋予确切的名字时,我从下载的数据中获得它们的值。 – sc13

+0

你没有告诉你使用的是Swift 4或JSONDecoder ... –

回答

2

不清楚你的问题,但是,如果你使用的是Swift 4 JSON解码支持,你可以定义一个自定义的CodingKeys枚举。例如:

struct Data: Decodable { 
    var volume24: String 
    var xxx: String 
    ... 

    enum CodingKeys: String, CodingKey { 
     case volume24 = “24h_volume” 
     case xxx 
     case ... 
    } 
} 

必须再定义每个属性casestruct,否则会被JSONDecoder被忽略。

+0

这就是我正在寻找的,但是我的结构是可解码的? – sc13

+0

@ sc13没问题,它的工作原理相同;) –

+0

非常感谢你! – sc13