【问题标题】:JSON Unmarshal struct case-sensitivelyJSON Unmarshal 结构区分大小写
【发布时间】:2018-08-06 22:43:00
【问题描述】:

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

来自官方文档:

为了将 JSON 解组到结构中,Unmarshal 将传入的对象键与 Marshal 使用的键(结构字段名称或其标记)匹配,首选完全匹配但也接受不区分大小写的匹配。

【问题讨论】:

  • 分叉和编辑 decode.go 以防止不区分大小写的匹配也是一种选择。

标签: json go unmarshalling


【解决方案1】:

很遗憾,标准 json 库目前不支持此功能。

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

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

无法关闭此行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 2020-04-15
    • 2012-12-01
    • 2013-03-06
    • 2020-02-18
    • 2012-03-15
    • 2012-07-01
    相关资源
    最近更新 更多