ackson具有使用以下命令忽略类中未知属性的注释:
@JsonIgnoreProperties(ignoreUnknown = true)
它允许你使用以下注释忽略特定属性:
@JsonIgnore
如果要全局设置,可以修改对象映射器:
// jackson 1.9 and before
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// or jackson 2.0
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
你如何使用spring对其进行全局设置,以便@Autowired
在服务器启动时无需编写其他类?
对于杰克逊1.9x或更低版本,你可以使用对象映射器提供程序忽略未知属性
@Provider
@Component
public class JerseyObjectMapperProvider implements ContextResolver<ObjectMapper> {
@Override
public ObjectMapper getContext(Class<?> type) {
ObjectMapper result = new ObjectMapper();
result.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
return result;
}
}
For jackson 1.9x及更高版本,你可以使用对象映射器提供程序忽略未知属性
@Provider
@Component
public class JerseyObjectMapperProvider implements ContextResolver<ObjectMapper> {
@Override
public ObjectMapper getContext(Class<?> type) {
ObjectMapper result = new ObjectMapper();
result.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
return result;
}
}
Spring不会自动发现Jersey类。必须手动注册。
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
register(JerseyObjectMapperProvider.class);
}
}
我有一个Spring Boot1.5应用程序,它是用文件配置的。我需要管理Default-Tomcat的连接池。
我正在开发一个Spring启动应用程序(使用版本1.2.5.RELEASE),当我使用在本地运行它时,它工作得非常好。但是,在生产环境中,应用程序需要在独立的Tomcat中作为WAR运行。使用正确配置的也可以工作。 当我为WAR添加一个名为的上下文参数时,问题就开始了。Spring Boot尝试配置其,并拾取参数,导致以下异常: 组织。springframework。豆。NotWritablePr
问题内容: 我想序列化一个不受我控制的POJO类,但是想避免序列化任何来自超类而不是最终类的属性。例: 您可以从示例中猜测到,该类是由JOOQ生成的,并且是从复杂的基类UpdatableRecordImpl继承的,该基类还具有一些类似于bean属性的方法,这会在序列化过程中引起问题。另外,我有几个类似的类,因此最好避免对所有生成的POJO复制相同的解决方案。 到目前为止,我已经找到以下可能的解决方
> 使用mixin技术忽略来自超类的特定字段,如下所示:我如何告诉jackson忽略一个我无法控制源代码的属性? 这样做的问题是,如果基类发生了变化(例如,其中出现了一个新的getAnything()方法),它可能会破坏我的实现。 实现一个自定义序列化程序并在那里处理问题。这在我看来有点矫枉过正。 但是,从纯设计的角度来看,最好的方法是告诉jackson我只想序列化最终类的属性,而忽略所有继承的属
我有以下课程- 我如何通过使用Jackson JSON API动态地排除字段序列化?