简介
您的 JSON 数据遵循未知格式,这对解组提出了挑战将其转换为 GoLang 结构体。本文将指导您完成有效处理这种情况的步骤。
使用map[string]接口进行解组{}
因为您不知道中的键提前,您可以使用 map[string]interface{} 来解组您的 JSON 负载。这允许您将键值对存储为映射,而无需指定值的类型。
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades) fmt.Println(err) fmt.Printf("%#v\n", grades)
这会将 JSON 数据作为字符串的嵌套映射输出到接口,这对于动态检查和处理数据。
使用 json:"-" 标签
你可以使用 json:"-" 标记从 JSON 编组/解组中排除某些字段。如果您想保留某些数据的私有性或避免循环引用,这会很有用。
type GradeData struct { Grades map[string]interface{} `json:"-"` } var gradesData GradeData err := json.Unmarshal([]byte(jsonString), &gradesData.Grades) fmt.Println(err) fmt.Printf("%#v\n", gradesData)
在此示例中,Grades 字段不会包含在 GradesData 的 JSON 表示形式中,但仍然可以使用存储和检索 JSON 数据。
结论
通过使用map[string]interface{} 和 json:"-" 标签,您可以成功地将未知格式的 JSON 数据解组到 GoLang 结构体中。这种方法允许您优雅地处理动态和未知的 JSON 结构。
以上是如何在 Go 中解组未知的 JSON 格式?的详细内容。更多信息请关注PHP中文网其他相关文章!