gpt4 book ai didi

json - 防止 Marshal 在结构的字符串字段上转义引号

转载 作者:IT王子 更新时间:2023-10-29 01:13:02 24 4
gpt4 key购买 nike

我在解析以下结构时遇到问题,其中 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\"}"
}

有没有办法告诉编码器避免转义 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.

Playground :http://play.golang.org/p/MFNQlISy-o .

关于json - 防止 Marshal 在结构的字符串字段上转义引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24860888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com