dongnai5905 2018-11-19 12:17
浏览 161
已采纳

在go中创建异构json数组

Suppose I have an struct like this in go:

type Message struct {
    Args   []interface{}
    Kwargs map[string]interface{}
}

message := Message{                                                                                                                                                                                            
    []interface{}{1, 2, 3, 4},                                                                                                                                                                                 
    map[string]interface{}{"a": 2, "b": 3},                                                                                                                                                                    
}

How should I marshal message to have a JSON like this?

[[1,2,3,4], {"a": 2, "b":3}]
  • 写回答

2条回答 默认 最新

  • douliang2087 2018-11-19 12:34
    关注

    You can add a marshal method to your struct to handle the logic. Something in the lines of

    func (m Message) MarshalJSON() ([]byte, error) {
        data := make([]interface{}, 0)
        data = append(data, m.Args)
        data = append(data, m.Kwargs)
        return json.Marshal(data)
    }
    

    Try it on the Playground

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?