Перейти -Скопировать все общие поля между структурами

У меня есть база данных, в которой хранится JSON, и сервер, который предоставляет внешний API, с помощью которого через сообщение HTTP значения в этой базе данных могут быть изменены. База данных используется различными внутренними процессами и поэтому имеет общую схему именования.

Ключи, которые видит клиент, разные, но в карте 1 :1 с ключами в базе данных (есть непредставленные ключи ). Например:

Это в базе данных:

{ "bit_size": 8, "secret_key": false }

И это представляется клиенту:

{ "num_bits": 8 }

API может меняться в отношении имен полей, но база данных всегда имеет согласованные ключи.

Я назвал поля в структуре одинаковыми, но с разными флагами для кодировщика json :

type DB struct {
    NumBits int  `json:"bit_size"`
    Secret  bool `json:"secret_key"`
}
type User struct {
    NumBits int `json:"num_bits"`
}

. Я использую encoding/jsonдля маршала/немаршала.

Подходит ли reflectдля этого? Есть ли более простой способ, поскольку все ключи одинаковы? Я думал о каком-тоmemcpy(если бы я сохранил пользовательские поля в том же порядке ).

16
задан Sonia 18 July 2012 в 20:14
поделиться