”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > json中的逗号:为什么go的综合语法与JSON解析冲突?

json中的逗号:为什么go的综合语法与JSON解析冲突?

发布于2025-03-23
浏览:402

在JSON解析中以GO   Trailing Commas in JSON: Why Does Go\'s Composite Literal Syntax Conflict with JSON Parsing? 
考虑以下代码:

ObjectType` JSON:“对象”` } 键入ObjectType struct { 名称字符串`json:“ name”` } func main(){ 字节:= []字节(`{“ objects”: [ {“ name”:“ foo”},//删除逗号以使代码工作! ]}`) jsontype:=&jsonObject {} json.unmarshal(bytes和jsontype) fmt.printf(“结果:%v \ n”,jsontype.objects [0] .name)// panic:运行时错误:索引范围超出范围 }

删除尾随逗号会解决运行时错误。 GO支持这种不一致的修复吗?

解决方案

不幸的是,没有解决方案。 JSON规范不允许挂逗号。虽然GO语法要求以复合文字为单位的逗号,但此要求不适用于JSON解析。

(换句话说 [ {“名称”:“ foo”}, ]}

尽管有可能会有特定的JSON解析器忽略尾随逗号,但应避免这种做法,因为使用其他有效的JSON解析器时可能会导致错误。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3