给出以下JSON对象:
{
"a": 1,
"b": [1,2,3,4]
}
以下type
:
type Thing struct {
A Int `json:"a"`
B string `json:"b"
}
我想要阵列" b"在编组进入go时保持为JSON字符串。
我目前收到以下错误:
panic: json: cannot unmarshal array into Go struct field Thing.b of type string
答案 0 :(得分:4)
将字段设置为json.RawMessage
。它将按原样存储,无需解释(即"[1,2,3,4]"
),作为一个字节片,可以很容易地转换为字符串。
如果您需要直接使用字符串,则必须在您的类型上实施json.Unmarshaler interface并自行进行转换。