json - 在 Go 中将嵌套的 JSON 解组为平面结构
问题描述
假设我定义一个结构如下:
type User struct {
ID string
Name string
Age uint
City string `json:"address.city"`
Province string `json:"address.province"`
}
我可以采用一个用户结构,并将扁平化的恶魔扩展成一个嵌套的 JSON 结构,并带有一个地址对象。然而,我正在努力朝着另一个方向前进。
我将如何采用以下 JSON:
{
"ID": "1",
"Name": "Keith Baldwin",
"Age": 30,
"address": {
"city": "Saskatoon",
"province": "Saskatchewan"
}
}
并将其解组到给定的结构中?
有什么我遗漏的东西,还是我只需要从头开始写,可能使用反射?
谢谢
解决方案
创建用户信息类
type UserInfo struct {
ID string `json:"ID"`
Name string `json:"Name"`
Age int `json:"Age"`
Address struct {
City string `json:"city"`
Province string `json:"province"`
} `json:"address"`
}
然后将您的 json 数据解组为 userinfo 对象
var userInfo UserInfo
jsonStr := `{
"ID": "1",
"Name": "Keith Baldwin",
"Age": 30,
"address": {
"city": "Saskatoon",
"province": "Saskatchewan"
}
}`
json.Unmarshal([]byte(jsonStr), &userInfo)
推荐阅读
- sql-server - SQL - 根据最新条目连接两个表
- c# - 从具有常见值的字典中获取 TKey,其中 TValue 是 List
- charts - 谷歌图表 - 爆炸饼图问题,而只有 1 个输入显示
- c# - 将 C# 表达式与 ADO.NET 数据表相结合
- sql - SQL Report - query multiple tables
- symfony - Symfony 4 所有视图中的公共数据 - 最佳实践
- apache - Kylin 如何在 Hbase 中存储数据?
- python - 使用 ActionChains 在 Selenium Webdriver 中按 ctrl+t 不起作用
- regex - 正则表达式 - 在特定字符后查找第一个空格
- react-native - 错误:不支持同步 http 请求