使用 JSON 有效负载时,处理未知格式的数据可能具有挑战性。当 JSON 结构中的键和值未预定义时,就会出现这种情况。为了解决这个问题,Go 提供了几种解组未知格式的方法。
在提供的 JSON 数据中,键代表科目,值是学生成绩的数组。为了有效地解组这些数据,我们可以利用以下技术:
选项 1:使用 map[string] 接口{}
如果密钥完全未知,您可以使用 map[string]interface{} 来解组 JSON 负载。此方法创建一个映射,其中键是字符串,值是表示未编组数据的接口。
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades)
选项 2:使用自定义结构
如果如果您有一个想要表示数据的特定结构,您可以创建一个自定义结构并在解组期间使用 json:"-" 标记忽略未知键。 GradeData 结构中的 Grades 字段将包含未编组的数据作为 map[string]interface{}。
type GradeData struct { Grades map[string]interface{} `json:"-"` } gradesData := GradeData{} err := json.Unmarshal([]byte(jsonString), &gradesData.Grades)
通过使用这两种方法之一,您可以有效地解组未知格式的 JSON 数据并访问Go 中的数据。选择最符合您的应用程序要求的方法非常重要。
以上是如何在 Go 中解组具有未知键和值的 JSON 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!