2017-10-28 3 views
1

私はAPIからプルされたJSONデータを持っていて、キーの1つは"24h_volume"です。スイフト4のヴァールの命名規則を上回るには?

私は私にエラーを与えて、私のDecodable struct内部定数として24h_volumeを入れてみてください:

Expected a digit after integer literal prefix.

私が理解から、スウィフトの構文は、数字で始まる変数名を許可していません。

この制限を超えて、ソースからデータを正常にプルする最も簡単な方法は何ですか?

+0

問題点は何ですか? Swiftプロパティは、JSON辞書キーと同じ名前である必要はありません。 –

+0

Swift 4でJSONをデコードすると、すべての値がクラスの相対名に割り当てられます。したがって、クラスの定数に正確な名前を付けると、ダウンロードしたデータから値を取得します。 – sc13

+0

あなたはSwift 4またはJSONDecoderを使用しているとは言わなかった... –

答えて

2

スウィフト4 JSONデコードのサポートを使用している場合は、カスタムのCodingKeysを定義することができます。例えば:

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

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

あなたはその後、それ以外の場合は、JSONDecoderによって無視されますあなたのstruct内の各プロパティのcaseを定義する必要があります。

+0

これは私が探しているものですが、私の構造体はDecodableですか? – sc13

+0

@ sc13問題ありません、それは同じ;) –

+0

ありがとうございます! – sc13