首页 > 后端开发 > Golang > 如何在 Go 中解组未知大小的 JSON 数组?

如何在 Go 中解组未知大小的 JSON 数组?

DDD
发布: 2024-12-12 12:43:13
原创
513 人浏览过

How to Unmarshal JSON Arrays of Unknown Size in Go?

使用未知大小的数组解组 JSON

通过 JSON 检索数据时,经常会遇到返回的 JSON 可能有也可能没有大批。例如,当请求智能电表列表时,它可能作为“gwrcmd”下的单个元素被接收。然而,当请求用电量时,它可能会作为“gwrcmd”数组返回。

这种歧义带来了编组挑战,因为 Go 结构需要数组和单个元素的显式定义。为了解决这个问题,json.Unmarshal 可用于返回单个 struct { } 或基于 JSON 结构的数组 []struct { }。

但是,如果预期的结果,json.Unmarshal 可能会遇到错误类型与 JSON 结构冲突。要解决此问题,可以创建第二个结构来复制第一个结构,但使用“Gwrcmd”切片除外。或者,更强大的方法涉及使用 json.RawMessage 捕获未知类型的 JSON 值,并根据其内容执行进一步的解组。这避免了仅根据第一个字节确定数组类型的猜测。

提供的 Go 代码片段中演示了两种方法的示例。此外,还列出了相关资源以供进一步探索。

以上是如何在 Go 中解组未知大小的 JSON 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

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