2015-08-27 4 views
3

Привет, я делаю клиент API, и я хочу использовать структуру для вытаскивания json, проблема в том, что одно из полей json должно быть названо типом, насколько я знаю, это зарезервированное ключевое слово, как я могу создать структуру с полем «тип» в ней?Строка с зарезервированным именем golang

Пример:

Что я хочу сделать:

type Card struct { 
    cardId string 
    name string 
    cardSet string 
    type string 
} 
+5

Прочтите [пакетную документацию] (https://golang.org/pkg/encoding/json/#Marshal) (желательно перед тем, как задавать вопросы). Это скажет вам две важные вещи: a) вам нужно экспортировать свои поля и b) вы можете использовать тег struct для переименования полей в/из JSON. –

ответ

14

Это не будет работать, чтобы начать с, так как вы не экспортировать имена полей.

В противном случае, вы можете использовать теги STRUCT назвать поля JSon, как вам нужно

type Card struct { 
    CardID string `json:"cardId"` 
    Name string `json:"name"` 
    CardSet string `json:"cardSet"` 
    Type string `json:"type"` 
} 
1

Вы должны использовать JSon аннотаций на модели. Кроме того, поля должны быть экспортированы (в верхнем регистре), или unmarshaller не сможет их использовать.

type Card struct { 
    CardId string `json:"cardId"` 
    Name string `json:"name"` 
    CardSet string `json:"cardSet"` 
    TheType string `json:"type"` 
}