当前位置: > > > > 定义类型以生成嵌套 JSON 的更好方法
定义类型以生成嵌套 JSON 的更好方法
来源:stackoverflow
2024-04-23 21:45:28
0浏览
收藏
对于一个Golang开发者来说,牢固扎实的基础是十分重要的,米云就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《定义类型以生成嵌套 JSON 的更好方法》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!
问题内容
我需要使用 go 生成以下 json 输出。
{
"id": "zx222",
"links": {
"main_entity": {
"data": [{
"type": "car",
"id": "abc123"
}]
}
}
}
通过封送处理生成上述 json 的直接方法是使用以下类型
type Element struct{
Id string `json:"id"`
Links LinksObject `json:"links"`
}
type LinksObject struct{
MainEntity MainEntityObject `json:"main_entity"`
}
type MainEntityObject struct{
Data []EntityDef `json:"data"`
}
type EntityDef struct{
Type string `json:"type"`
Id string `json:"id"`
}
是否有更好的方法来生成上述 json,而无需定义每个结构只是为了嵌套结构?
在问题背后添加一些我的想法。由于消息的包装方式,原始 json 具有额外的嵌套级别。但它们不一定具有任何意义,否则将它们定义为仅用于解码/编码为 json 的数据类型似乎没有必要。
解决方案
type Element struct {
ID string `json:"id"`
Links struct {
MainEntity struct {
Data []struct {
Type string `json:"type"`
ID string `json:"id"`
} `json:"data"`
} `json:"main_entity"`
} `json:"links"`
}
到这里,我们也就讲完了《定义类型以生成嵌套 JSON 的更好方法》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注米云公众号,带你了解更多关于的知识点!
