微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

json – 防止Marshal在STR字符串字段上转义引号

我在解析以下结构时遇到问题,其中JsonData是存储在数据库中的 JSON字符串.
type User struct {
    Id          uint64  `json:"user_id"`
    JsonData    string  `json:"data"`
}

user := &User {
    Id: 444,JsonData: `{"field_a": 73,"field_b": "a string"}`,}

如果我json.Marshal这个,它将逃避引号,但这将给我JSON:

{
    "user_id" : 444,"data": "{\"field_a\": 73,\"field_b\": \"a string\"}"
}

有没有办法让marshaller避免转义JsonData字符串并将其放在引号中,所以它看起来像这样?

{
    "user_id" : 444,"data": {"field_a": 73,"field_b": "a string"}
}

我宁愿不跳过太多的箍,比如创建一个全新的类似用户的对象和/或解组/重新编组字符串等.

解决方法

好像 RawMessage正在寻找:

RawMessage is a raw encoded JSON object. It implements Marshaler and Unmarshaler and can be used to delay JSON decoding or precompute a JSON encoding.

游乐场:http://play.golang.org/p/MFNQlISy-o.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐