2015-08-31 3 views
2

JSON Так я бег golang AppEngine с пакетом Go конечных точек ...golang AppEngine исходящего

я использовать структуры маршала и ООН маршала мои JSon входящих запросы и исходящий ответ ..

type BusinessWorker struct { 
    Wid string `json:"wid" datastore:"Worker_id" endpoints:"req,desc=Worker id. string value"` 
    Phone string `json:"phone" datastore:"Phone" endpoints:"req,desc=Worker phone number. string value"` 
} 

Итак, как вы можете увидеть после того, как я подтвержу данные, которые obj сохраняется или загружается в/из хранилища данных.

Мой вопрос: Есть много случаев, когда я не хочу отвечать всеми моими данными, которые сохраняются в хранилище данных .. есть какой-то атрибут что я могу дать параметру, который я не хочу включать в свой ответ только в моих входящих запросах?

Кажется, что это элементарно .. и я не могу найти его ..?

ответ

1

Может быть, вы хотели бы попробовать один или комбинацию из следующих подходов:

  • Tag из «-» так, что поле игнорируется. например json:"-"
  • omitempty может быть включен в ваш «json:» и приведет к тому, что поле не будет включено в полученный json. Таким образом, вы можете установить поля, которые вы хотите скрыть, до нуля, до сериализации в json. например json:"myName,omitempty"
  • копировальный аппарат - есть некоторые проекты, такие как: jinzhu's copier, которые позволят вам скопировать вашу сущность в упрощенную структуру или вы можете свернуть самостоятельно. (комбинация JSON un-marshalling и marshalling может привести к аналогичным результатам).

Для получения более подробной информации о пакете JSON см Golang Json marshal docs

+0

Пароль строку 'JSon: "пароль, omitempty" хранилище данных "пароль" конечные точки: "REQ, убывание = Бизнес-пароль"' это то, что я использую, но параметр все еще включен в json. –

Смежные вопросы