Перейти библиотека для сопоставления ключей JSON, чтобы очистить вывод - PullRequest
0 голосов
/ 25 мая 2018

Существуют ли библиотеки Go, которые могут привести в порядок вывод Json до того, как он будет отправлен пользователям?

Мы можем разобрать структуру и сделать это вручную, но мы хотели бы знать, есть ли какие-нибудь библиотеки, которыеМожно упростить извлечение ключей в структуру, которую мы могли бы Marshall и отправить пользователю?

1 Ответ

0 голосов
/ 25 мая 2018

Короткий ответ на самом деле не тот, потому что Go обрабатывает JSON-маршалинг и демаршаллинг.Обычный шаблон для работы с вашим вариантом использования - просто определить структуру Response.

Классическим примером может быть что-то вроде следующего:

type User struct {
   // fields
}

// Response type used when the user is asking about their own fields
type PrivateUserResponse struct {
   // fields with struct tags
}

func (u *User) ToPrivateUserResponse() *PrivateUserResponse { ... } 

// Response type used when the user is being listed in a public directory
type PublicUserResponse struct {
    // fields with struct tags
}

func (u *User) ToPublicUserResponse() *PublicUserResponse { ... } 

Поскольку конфигурация ключа JSON обрабатывается тегами структуры, библиотека не подходит для обработки уникальных случаев бизнес-логики, которыевозникают при решении этой проблемы.Возможно, вам удастся найти генератор кода, который решает эту проблему более общим образом, но я бы порекомендовал просто написать сами структуры - Go предпочитает явное и понятное поведение.

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