简介
您的 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 data.
结论
通过使用map[string]interface{}和json:"-"标签,你可以成功地将未知格式的 JSON 数据解组到 GoLang 结构中。这种方法允许您优雅地处理动态和未知的 JSON 结构。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3