我正在使用一个发送 JSON 数据的 API。问题是单个元素的数组显示为单个值。例如,考虑以下 JSON:
{ "names": ["Alice","Bob"] }
API 将其作为数组发送。但是当names
字段只有一个元素时,API 会发送:
{ "names": "Alice" }
这就是我通常在 Go 中解码这个响应的方式:
type Response struct {
Names []string `json:"names"`
}
// later
d := &Response{}
_ = json.NewDecoder(resp).Decode(d) // resp would be a http.Response.Body containing the problematic JSON
Go 正确解码了第一个 JSON。但是,在解码第二个 JSON 后,该对象包含一个空数组。
我对 API 没有任何控制权,所以我必须解决这个问题。如何在 Go 中正确解码此 JSON,以便Names
切片包含单个元素?谢谢您的帮助。