【问题标题】:jackson - ignoring case in snake case keys杰克逊 - 忽略蛇盒键中的大小写
【发布时间】:2016-11-16 01:23:44
【问题描述】:

我需要接收带有下划线的键的 JSON,甚至忽略单词中的大小写。例如Device_control_API、device_control_API、Device_Control_API、device_control_aPI 等都应该映射到相同的属性。

现在我知道我可以使用 @JsonSetter 创建多个 setter 方法以及所有可能的组合,但我认为这不会很好。

我看到了其他建议使用mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true) 的问题 让 ObjectMapper 对象忽略大小写,但我不能这样做,因为我正在使用 spring-boot 并希望我的 REST API 以 POJO 对象的形式获取有效负载。

有什么注释或者方法吗

请帮忙!!!

【问题讨论】:

    标签: java json spring-boot jackson


    【解决方案1】:

    还有这个属性:

    spring.jackson.mapper.accept_case_insensitive_properties=true

    【讨论】:

      【解决方案2】:

      我认为您不能使用MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES 作为注释。从here得到以下信息

      杰克逊开/关功能:MapperFeature

      Jackson 定义了一组 per-mapper 配置,它只能是 在使用 ObjectMapper 之前定义——这意味着这些设置可以 不会根据请求即时更改。他们配置 基本 POJO 内省细节和生成的构建对象 (序列化器,反序列化器,相关)被大量缓存。如果你需要 这些设置不同,您必须使用单独的 ObjectMapper 实例。

      MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES 是配置之一。


      但也许自定义反序列化类可以帮助您。 Stackoverflow 上有很多教程和问题。

      我找到了一些:

      【讨论】:

        猜你喜欢
        • 2017-10-05
        • 2016-04-19
        • 2016-01-16
        • 2016-09-11
        • 1970-01-01
        • 1970-01-01
        • 2022-06-22
        • 2017-02-15
        • 1970-01-01
        相关资源
        最近更新 更多