【问题标题】:Jackson UpperCamelCase - not capitalizing single word propertiesJackson UpperCamelCase - 不大写单个单词属性
【发布时间】:2017-07-19 00:48:16
【问题描述】:

我正在将序列化从蛇形转换为大写骆驼式。

mapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE);

在更新测试时,我注意到单个单词的属性没有大写:

{"priority":3, "CorrelationId":"cce2dfa6-f82a-11e6-bc64-92361f002671"}

这是预期的行为吗?单字属性的解决方法是什么?

【问题讨论】:

    标签: java json serialization jackson fasterxml


    【解决方案1】:

    实际的问题是在蛇案例中的 JsonProperty 注释中给出了奇怪的结果:

    @JsonProperty("priority"), @JsonProperty("correlation_id")
    

    将它们固定为大写驼峰后,问题就消失了。

    【讨论】:

      【解决方案2】:

      根据其javadocPropertyNamingStrategy 仅适用于 POJO:

      定义如何派生 JSON 属性的名称(“外部名称”) 来自 POJO 方法和字段的名称(“内部名称”)

      我的猜测是你将一个集合类型传递给映射器,它不会受到策略的影响。

      【讨论】:

      • "priority" 是 s 字段,我在映射器中禁用了属性 getter 和 setter。
      • @Cortlendt:好的。在那种情况下,我无法复制问题。在我的沙箱中,命名策略毫无问题地应用于输出。
      • 与其他映射器设置冲突?
      • 可能。也许在单元测试中尝试一下,使用“vanilla”ObjectMapper 并一一应用您的配置以查看问题何时出现。
      猜你喜欢
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 2020-04-26
      • 2020-01-19
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多