首页 > 后端开发 > Golang > 如何在 Go 中使用动态嵌套键解码 JSON?

如何在 Go 中使用动态嵌套键解码 JSON?

Mary-Kate Olsen
发布: 2024-11-25 12:01:15
原创
771 人浏览过

How to Decode JSON with Dynamic Nested Keys in Go?

JSON 嵌套动态结构 Go 解码

在此场景中,JSON 响应包含嵌套“sms”对象中的动态密钥。传统的结构体解码方法会因为未知的电话号码作为键而失败。

解决方案:地图和动态键处理

为了有效地反序列化此类数据,地图数据结构受雇。下面修改后的代码引入了一个map[string]SMSPhone来模拟“sms”对象:

type SMSPhone struct {
    Status     string `json:"status"`
    StatusCode int    `json:"status_code"`
    StatusText string `json:"status_text"`
}

type SMSSendJSON struct {
    Status     string              `json:"status"`
    StatusCode int                 `json:"status_code"`
    Sms        map[string]SMSPhone `json:"sms"`
    Balance    float64             `json:"balance"`
}
登录后复制

解组过程

使用此映射,解组进程现在可以正确处理动态电话数字:

var result SMSSendJSON

if err := json.Unmarshal([]byte(src), &result); err != nil {
    panic(err)
}
登录后复制

示例输出

结果映射将包含电话号码作为键及其关联的 SMSPhone 结构:

{Status:OK StatusCode:100 Sms:map[79035671233:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79105432212:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79607891234:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения}] Balance:2676.18}
登录后复制

这种方法允许使用动态嵌套结构对 JSON 响应进行高效解码。

以上是如何在 Go 中使用动态嵌套键解码 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!

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