将其从GitHub移至此处,因为 Spring 团队仅使用 GitHub 问题来处理错误和功能请求。
根据 Spring Boot文档,只要您没有定义自己的bean ,就应该可以ObjectMapper使用环境属性(例如在 中application.properties)来自定义 Jackson 。spring.jackson.parser.<feature_name>ObjectMapper
我需要激活ALLOW_NON_NUMERIC_NUMBERS解析器功能,因为我正在获取(严格来说无效)JSON NaN,其中包含我希望 Jackson 在 Java 中映射到的浮点字段的值java.lang.Double.NaN。
所以在我的application.properties添加中spring.jackson.parser.ALLOW_NON_NUMERIC_NUMBERS=true,我可以看到它正在被拾取:
JacksonAutoConfiguration正在创建一个Jackson2ObjectMapperBuilderJackson2ObjectMapperBuilder正在 StandardJackson2ObjectMapperBuilderCustomizer拾取我的spring.jackson.parser.ALLOW_NON_NUMERIC_NUMBERS=true财产并将其添加到其features地图中Jackson2ObjectMapperBuilder的build()方法最终会被调用configureFeature,这会导致特征 (512) 的掩码值ALLOW_NON_NUMERIC_NUMBERS被添加_parserFeatures到JsonFactoryObjectMapperObjectMapper在我的 bean 中注入的使用也@Autowired启用了该ALLOW_NON_NUMERIC_NUMBERS功能NaN不清楚的是为什么我在解析具有浮点字段值的
JSON 时仍然收到以下 Jackson 错误:JSON decoding …