2017-10-28 151 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