如何解析具有已知和未知键/值对的 JSON 字符串进入 Go 结构体?未知字段可以具有任何名称和值类型(字符串、布尔、float64 或 int)。
使用已知字段和未知字段的映射切片创建一个结构体:
<code class="go">type Message struct { Known1 string `json:"known1"` Known2 string `json:"known2"` Unknowns []map[string]interface{} }</code>
将 JSON 字符串解组到此结构中:
<code class="go">json.Unmarshal([]byte(jsonMsg), &msg)</code>
Unknowns 字段将包含表示未知键/值对的映射列表。
双重解组:
解组和类型转换:
所有三种解决方案都是有效的,但最简单、最优雅的是最初的基于结构的方法。它避免了额外的解组或手动类型转换的需要。
以上是如何将具有已知和未知键/值对的 JSON 解析为 Go 结构?的详细内容。更多信息请关注PHP中文网其他相关文章!