arrays - 在 go 中创建异构 json 数组
问题描述
假设我有一个这样的结构:
type Message struct {
Args []interface{}
Kwargs map[string]interface{}
}
message := Message{
[]interface{}{1, 2, 3, 4},
map[string]interface{}{"a": 2, "b": 3},
}
我应该如何编组消息以拥有这样的 JSON?
[[1,2,3,4], {"a": 2, "b":3}]
解决方案
您可以在结构中添加一个 marshal 方法来处理逻辑。有点像
func (m Message) MarshalJSON() ([]byte, error) {
data := make([]interface{}, 0)
data = append(data, m.Args)
data = append(data, m.Kwargs)
return json.Marshal(data)
}
推荐阅读
- bash - 如何仅打印与零不同的结果?
- vue.js - 将 Vuex 与动态创建的组件一起使用
- javascript - 如何在用户输入的字符串中分离函数并绘制该函数?
- mysql - 查询中的 SQL 重新计算?
- python - 上课有什么我不明白的吗?
- wordpress - WooCommerce:用 FontAwesome 图标替换面包屑中的 Home
- r - 是否可以在 Dplyr 的汇总中为每个组创建单独的线性模型
- influxdb - InfluxDB 无法从远程 collectd 收集数据
- typescript - 如何让 Typescript 等待函数执行
- vespa - 在 vespa 中使用 Wandsearcher 的任何示例?(经过加权集查询)