使用映射解组具有未知字段名的 JSON
解组具有未知字段名的 JSON 会带来挑战,尤其是当对象结构保持一致时。这个问题解决了如何处理此类场景,并提供了使用 Golang 映射的解决方案。
问题:
POST 请求提供的 JSON 响应包含一个带有未知的名字。目标是将此 JSON 解组为结构体,同时保留已知字段的一致结构。
解决方案:
第 1 步:创建一个结构体已知字段
定义一个名为 mData 的结构体,它表示已知字段中的一致字段JSON:
type mData struct { KnownField1 [][5]int `json:"known_field_1"` KnownField2 [][5]int `json:"known_field_2"` KnownField3 [][5]int `json:"known_field_3"` }
第 2 步:使用映射来处理未知字段名
创建一个名为 data 的映射,将未知字段名存储为键和实例mData 作为值:
var data map[string]mData
第 3 步:将 JSON 解组为Map
利用 json.Unmarshal 将 JSON 正文绑定到地图:
if err := json.Unmarshal(body, &data); err != nil { panic(err) }
第 4 步:打印结果
地图现在将包含未知的字段名称和关联的 mData 实例。您可以使用以下代码访问这些值:
for k, v := range data { fmt.Println(k, v) }
此方法允许您使用未知字段名解组 JSON,同时维护已知字段的结构。所提供代码的输出将是:
unknown_field [[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]]
以上是如何在 Go 中使用 Map 解组具有未知字段名称的 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!