Как декодировать JSON для структурирования в Голанге, следуя рекомендациям API - PullRequest
0 голосов
/ 20 сентября 2019

Это мое тело / как API публикует данные:

{ 
"data": {
        "email": "string",
        "first_name": "string",
        "last_name": "string",
        }
}

, а это моя структура postProfileRequest, которую, возможно, мне нужно изменить, чтобы разместить данные?

type postProfileRequest struct {
    Profile Profile
}

гдетак как это профиль

type Profile struct {
ID        int    `json:"id"`
Email     string `json:"email"`
FirstName string `json:"first_name"`
LastName  string `json:"last_name"`
}

и я хотел бы декодировать запрос тела без части данных, поэтому код ниже работает, так как я не могу сделать r.Body.data, мне было интересно, что будетлучший способ сделать это?

var req postProfileRequest
json.NewDecoder(r.Body).Decode(&req.Profile)

1 Ответ

2 голосов
/ 20 сентября 2019

Используйте следующее для декодирования в Profile без части данных:

var req postProfileRequest

// Create a value that matches the structure of 
// the JSON. 
v := struct{ Data *Profile }{&req.Profile}

json.NewDecoder(r.Body).Decode(&v)

fmt.Println(req.Profile) // The data field was decoded to req.Profile

Запустите его на детской площадке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...