- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 Apache CXF 的 JAX-RS API。最近我从 Jettison 切换到 Jackson (2.7.1) 来处理 JSON。我正在使用 JacksonJaxbJsonProvider。
为了帮助转换,我需要做的一件事是确保不呈现 JSON 中的空字段。为此,我在类级别使用以下注释:
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Book {
...
}
有没有办法全局设置它,这样我就不必将这个注解应用到每个类?
使用 Jettison,我能够在 beans.xml 文件中指定属性,Jackson 是否有类似的方法来实现 NON_NULL 行为?
<bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
<property name="dropRootElement" value="true"/>
<property name="supportUnwrapped" value="true"/>
</bean>
我看到一些建议在实例化时在 ObjectMapper 级别设置此属性,但是在使用 Apache CXF 时我从不手动创建 ObjectMapper,因为此实例化由框架处理(可能发生在 JacksonJaxbJsonProvider 中的某个地方)。
有什么方法可以全局设置 NON_NULL 属性吗?
最佳答案
为了以防万一,它可以帮助其他人,在 beans.xml 中配置 ObjectMapper 可以使用 NON_NULL,但是我的 JAXB 注释停止了工作。为了让它们同时工作,我求助于创建自己的 ObjectMapper 提供程序:
@Provider
public class CustomJacksonObjectMapperProvider implements ContextResolver<ObjectMapper> {
final ObjectMapper defaultObjectMapper;
public CustomJacksonObjectMapperProvider() {
defaultObjectMapper = createDefaultMapper();
}
@Override
public ObjectMapper getContext(Class<?> type) {
return (defaultObjectMapper);
}
private static ObjectMapper createDefaultMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.setAnnotationIntrospector(
AnnotationIntrospector.pair(
new JacksonAnnotationIntrospector(),
new JaxbAnnotationIntrospector(mapper.getTypeFactory())
));
return (mapper);
}
}
并将其注册到 beans.xml 中(在 jaxrs:providers
下),如下所示:
<bean id="customJacksonObjectMapperProvider" class="CustomJacksonObjectMapperProvider"/>
关于java - 您可以在 JAX-RS 中全局设置 Jackon 的 Include.NON_NULL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35367366/
目前我的应用程序有一个类如下 @JsonInclude(JsonInclude.Include.NON_NULL) public class Employee { Department depar
我在 Response 类上添加了 @JsonInclude(Include.NON_NULL) 注释。 @JsonInclude(Include.NON_NULL) public class Res
我通常使用 objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL) 因为我从不想序列化类的空值。除了现在我有一
我正在使用 Spring Boot 1.5.7-发布 . 我正在尝试设置 全局非空 我的应用程序中的 Jackson 属性。 但它不起作用。 我在 application.properties 和 b
我用 @JsonInclude(JsonInclude.Include.NON_NULL) 注释了 POJO,以在序列化/反序列化时排除所有 null 字段。但现在我需要从这种行为中排除其中一个字段。
在 route!=0 的情况下,我正在尝试检索 {"status":201} 但我得到的是 {"status":201 "distance":0.0} 如何使用 @JsonInclude 或 Jack
当使用以下 JSON 并且“phones”或“emailAddresses”为空时,我将收到 NullPointerException。 JSON: { "item": { "messag
我已经在类/pojo 上放置了注释并配置了映射器,但它仍然序列化 null 值 我正在使用 Hibernate 4.3.7Final 和 Jackson 2.4.4。这些集合是延迟加载 Pojo:删除
我试图了解 @JsonInclude 存在的原因是什么,以便在我的 DTO 中使用它。让我们看一下这个简单的例子: 代码: class DemoApplication { static voi
我是 Obj-C 的新手,但我正在尝试在 Xcode 7 上构建一些以前在 Xcode 6 中运行的代码。具体来说,我遇到了这个问题: [_webView loadData:[_text dataUs
问题: 是否可以在创建 ObjectMapper 时覆盖 POJO 中定义的 Include.NON_NULL? 解释: 假设我有一个如下所示的 POJO: @JsonInclude(Include.
我有一个像这样的模型类: @JsonInclude(JsonInclude.Include.NON_NULL) public class Defect 我需要 JsonInclude.Include.
我有一个使用 Apache CXF 的 JAX-RS API。最近我从 Jettison 切换到 Jackson (2.7.1) 来处理 JSON。我正在使用 JacksonJaxbJsonProvi
我正在尝试通过 application.yml 文件在应用程序级别添加 jackson 注释。但是当我运行应用程序时,jackson 注释被忽略并且响应也具有 null 属性。有人帮我吗?我在我的 a
我是一名优秀的程序员,十分优秀!