假设我有以下内容struct,并且我想根据代码中的一些字符串变量重命名 X 和 Y。type RenameStruct struct {
X map[string]interface{}
Y []map[string]interface{}
}在编码为 JSON 时重命名它们的最佳方法是什么?我在 StackOverflow 中找到的那些似乎不适用于struct一个字段是一个interface{}ant 而另一个是[]interface{}.编辑:我使用 Dave 的回答以这种方式创建“RenameStruct”列表:play.golang.org/p/hKZQvhJV2iL
1 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
您需要使用自定义 JSON 编组器,然后通过某种方式传入您想要的名称。我能想到的唯一简单方法是:
type RenameStruct struct {
X map[string]interface{}
Y []map[string]interface{}
xName string
yName string
}
func (r RenameStruct) MarshalJSON() ([]byte, error) {
data := make(map[string]interface{})
data[r.xName] = r.X
data[r.yName] = r.Y
return json.Marshal(data)
}
https://play.golang.org/p/cpjgJ5tpcK3
- 1 回答
- 0 关注
- 171 浏览
添加回答
举报
0/150
提交
取消