我已经从给定的数据库中提取了一些数据——但是格式不符合我的要求。
示例结构:
type myStruct struct {
ID int `json:"Id"`
Language string `json:"Language"`
Location string `json:"Location"`
}
是的,我使用表示给定返回列的自定义结构序列化给定的字符串映射:
func transformJSON(extract []map[string]*sql.SqlCell) ([]byte, error) {
return json.MarshalIndent(extract, "", " ")
}
这将返回有效的 JSON,但格式为:
{
{
"id": {
"Value": {
"Long": 12353
}
},
"language": {
"Value": {
"String_": "ja-JP"
}
},
"location": {
"Value": {
"String_": "Osaka"
}
},
参考我上面的结构,我想要这样的格式:
[
{
"Id": 12353,
"Language": "ja-JP",
"Location": "Osaka"
},
// .. other objects
]
假设对 的输入相同func transformJSON,我将如何将嵌套键与列类型值匹配?
我应该Marshal先绘制地图,然后转换数据——还是[]map[string]*sql.SqlCell在编组之前直接使用数据结构?
在我的脑海里,我在想:
func transformJSON(extract []map[string]*sql.SqlCell) ([]byte, error) {
struct :=[] myStruct{}
// Loop over extract objects, match nested keys, write to struct?
return json.MarshalIndent(struct, "", " ")
}
牛魔王的故事
相关分类