Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解组JSON,但将嵌套结构解组为字符串_Json_Go - Fatal编程技术网

解组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]”),作为字节片,可以很容易地转换为字符

给定以下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]”),作为字节片,可以很容易地转换为字符串


如果您直接需要一个字符串,您必须在您的类型上实现,并自己进行转换。

JSON不是这样做的,也不应该这样做。如果你想要一个字符串,你应该在JSON中有一个字符串。将该字段设置为一个字符串。它将按原样存储,无需解释(即作为[1,2,3,4]”),作为字节片,可以很容易地转换为字符串。如果您直接需要一个字符串,您必须在您的类型上实现,并自己进行转换。@Kaedys,这很有效!你介意把它作为下面的答案吗?@Adrian哈哈,这很有趣。@Breedly,我认为@Adrian是认真的,如果你想要一个字符串,它应该是一个字符串,也就是说:
{“a”:1,“b”:“[1,2,3,4]”}
是JSON应该是什么,如果你想要一个字符串,那就是JSON。