2017-10-28 7 views
1

API에서 가져온 JSON 데이터가 있는데 키 중 하나가 "24h_volume"입니다.스위프트 4의 VAR 명명 규칙을 능가하는 방법은 무엇입니까?

나는 나의 Decodable struct 나에게주는 오류 내부 일정24h_volume을 넣어하려고 할 때 :

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 ... 
    } 
} 

당신은 다음의 각 속성에 대한 case를 정의해야합니다 struct 그렇지 않으면 JSONDecoder에 의해 무시됩니다.

+0

이것은 구조체가 디코딩 가능하지만 내가 찾고있는 것입니다. – sc13

+0

@ sc13 문제 없으며 동일하게 작동합니다.) –

+0

정말 고마워요 !! – sc13