Golang JSON反序列化多余字段:能否安全解析到目标结构体?
Go语言JSON反序列化处理多余字段的说明
完全安全且被允许,这是Go标准库encoding/json的默认行为:
- 当反序列化JSON到结构体时,库会自动忽略那些结构体中没有对应字段的JSON键值对,不会抛出错误,也不会影响已有字段的赋值。
- 针对你给出的示例,反序列化后
MyStruct的A字段会被正确设置为"something",JSON里的b、c字段会直接被忽略,不会产生任何安全风险或异常。
如果需要严格校验JSON,不允许出现结构体未定义的字段,可以使用Decoder.DisallowUnknownFields()方法,此时遇到多余字段会直接返回错误,但这属于额外配置,默认情况下是允许忽略多余字段的。
内容的提问来源于stack exchange,提问作者Ymi
相关产品推荐
相关产品推荐

