首页 > 后端开发 > Golang > 在 Go 中解组时如何区分空 JSON 字段和缺失 JSON 字段?

在 Go 中解组时如何区分空 JSON 字段和缺失 JSON 字段?

Mary-Kate Olsen
发布: 2024-12-04 06:05:16
原创
311 人浏览过

How Can I Distinguish Between Empty and Missing JSON Fields When Unmarshalling in Go?

揭开 Go 解组中 Void 值和未指定字段的神秘面纱

在 Go 中,将 JSON 解组为结构体时,可能具有挑战性区分空值和未指定的字段值。这可能会导致不明确的程序行为。以下是解决此难题的方法:

区分 Void 和未指定值

当 JSON 字段存在但具有空值(例如,空字符串)时,会出现 Void 值),而当 JSON 中完全省略某个字段时,就会出现未指定的值。为了区分这些,修改字段类型以使用指针:

type Category struct {
    Name        string
    Description *string
}
登录后复制

现在,如果 JSON 字段包含空字符串,它将被设置为指向空字符串的指针。但是,如果该字段不存在,它将保持为零。

示例用法

考虑以下 JSON:

[
    {"Name": "A", "Description": "Monotremata"},
    {"Name": "B"},
    {"Name": "C", "Description": ""}
]
登录后复制

使用修改后的字段类型,输出将为:

[{Name:A Description:0x1050c150}, {Name:B Description:<nil>}, {Name:C Description:0x1050c158}]
登录后复制

这允许您区分类别 B 中未指定的描述字段和类别 C 中的空描述字段。您现在可以在程序中单独处理它们。

以上是在 Go 中解组时如何区分空 JSON 字段和缺失 JSON 字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

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