首页 > 后端开发 > Golang > 正文

如何在 Go 中解组未知的 JSON 数据结构?

Susan Sarandon
发布: 2024-11-26 01:15:15
原创
501 人浏览过

How to Unmarshal Unknown JSON Data Structures in Go?

解组未知格式的 JSON 数据

提供的 JSON 遵循特定模式:

{
SUBJECT1: [{Student_Name1: Grade, Student_Name2: Grade, ... , Student_Name3: Grade, timestamp: Timestamp(...)}],
SUBJECT2: [{Student_Name4: Grade, Student_Name6: Grade, ... , Student_Name5: Grade, timestamp: Timestamp(...)}]
...
SUBJECTN: [{Student_Name1: Grade, Student_Name6: Grade, ... , Student_Name9: Grade, timestamp: Timestamp(...)}]
}
登录后复制

目标: 将 JSON 解组为 GoLang 结构,以 JSON 形式返回

解决方案:

选项 1:使用 map[string] 接口{}

因为 JSON 键是未知,我们可以使用map[string]interface{}来解组

var grades map[string]interface{}
err := json.Unmarshal([]byte(jsonString), &grades)
fmt.Println(err)
fmt.Printf("%#v\n", grades)
登录后复制

选项 2:使用结构

如果需要结构,请使用 json:"-" 标记在 JSON 编组期间忽略字段/正在解组。

type GradeData struct {
    Grades map[string]interface{} `json:"-"`
}

err := json.Unmarshal([]byte(jsonString), &gradesData.Grades)
fmt.Println(err)
fmt.Printf("%#v\n", gradesData)
登录后复制

以上是如何在 Go 中解组未知的 JSON 数据结构?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板