У меня есть база данных, в которой хранится 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
(если бы я сохранил пользовательские поля в том же порядке ).