首页 >后端开发 >Golang >如何在 Go 中解组未知的 JSON 格式?

如何在 Go 中解组未知的 JSON 格式?

Susan Sarandon
Susan Sarandon原创
2024-11-26 05:54:18459浏览

How Can I Unmarshal Unknown JSON Formats in Go?

解组未知格式的 JSON 数据

简介

您的 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn