解组JSON,但将嵌套结构解组为字符串
给定以下JSON对象:解组JSON,但将嵌套结构解组为字符串,json,go,Json,Go,给定以下JSON对象: { "a": 1, "b": [1,2,3,4] } 以及以下类型: type Thing struct { A Int `json:"a"` B string `json:"b" } 我希望数组“b”在编组到go中时保持为JSON字符串 我当前遇到以下错误: panic:json:无法将数组解组到Go-struct字段Thing.b中,类型为string将字段设置为a。它将按原样存储,无需解释(即作为[1,2,3,4]”),作为字节片,可以很容易地转换为字符
{
"a": 1,
"b": [1,2,3,4]
}
以及以下类型
:
type Thing struct {
A Int `json:"a"`
B string `json:"b"
}
我希望数组“b”在编组到go中时保持为JSON字符串
我当前遇到以下错误:
panic:json:无法将数组解组到Go-struct字段Thing.b中,类型为string
将字段设置为a。它将按原样存储,无需解释(即作为[1,2,3,4]”),作为字节片,可以很容易地转换为字符串
如果您直接需要一个字符串,您必须在您的类型上实现,并自己进行转换。JSON不是这样做的,也不应该这样做。如果你想要一个字符串,你应该在JSON中有一个字符串。将该字段设置为一个字符串。它将按原样存储,无需解释(即作为[1,2,3,4]”),作为字节片,可以很容易地转换为字符串。如果您直接需要一个字符串,您必须在您的类型上实现,并自己进行转换。@Kaedys,这很有效!你介意把它作为下面的答案吗?@Adrian哈哈,这很有趣。@Breedly,我认为@Adrian是认真的,如果你想要一个字符串,它应该是一个字符串,也就是说:
{“a”:1,“b”:“[1,2,3,4]”}
是JSON应该是什么,如果你想要一个字符串,那就是JSON。