在 Go 中,JSON 数据被解组到预定义的结构中。但是,当密钥值的类型在请求之间可能有所不同时,某些 API 响应可能会带来挑战。例如,API 可能返回特定键的内联对象或对象引用。
要处理这种可变性,请考虑使用以下方法:
type Data struct { MyKey []interface{} `json:"mykey"` }
此结构解组两个内联对象以及对接口数组的对象引用。通过在解组后使用类型开关,您可以确定数组中每个元素的实际类型:
for _, v := range data.MyKey { switch x := v.(type) { case string: fmt.Println("Got a string: ", x) case map[string]interface{}: fmt.Printf("Got an object: %#v\n", x) } }
此方法允许您以灵活且惯用的方式解析具有可变数组字段类型的 JSON 数据。
以上是如何在 Go 中使用可变数组字段类型解组 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!