一尘不染

区分大小写的JSON Unmarshal结构

go

有什么办法可以使json.Unmarshal 接受不区分大小写的匹配?我收到带有标签的JSON,例如“ e”和“ E”,并想解组带有标签“
e”的对象,但忽略带有“ E”的对象。现在,我发现的唯一解决方案是定义一个包含两个标签的结构,然后简单地忽略标签“
E”,但是我正在寻找一种更清洁的解决方案。

从官方文档:

为了将JSON解组到结构中,Unmarshal将传入的对象键与Marshal使用的键(结构字段名称或其标记)进行匹配,希望使用精确匹配,但还要接受不区分大小写的匹配。


阅读 285

收藏
2020-07-02

共1个答案

一尘不染

不幸的是,标准json库当前不支持此功能。

根据https://golang.org/pkg/encoding/json/#Unmarshal

Unmarshal将传入的对象键与Marshal使用的键(结构字段名称或其标记)进行匹配,更喜欢完全匹配,但也接受不区分大小写的匹配

无法关闭此行为。

2020-07-02