【发布时间】:2019-04-28 15:42:49
【问题描述】:
对于我们的服务输入,我们使用带有某些配置的对象映射器来序列化它。我们在客户端库中为客户端提供相同的对象映射器配置,并在我们的端使用相同的对象映射器来反序列化输入。
现在我们正在向我们的输入添加另一个对象,该对象由一个共同的团队拥有,并拥有自己的对象映射器配置以正确序列化它。
class MyAPIRequest {
MyOtherOwnedClass1 obj1;
MyOtherOwnedClass2 obj2;
//New Shared class which is being added as part of input now:
CommonlyOwnedClass newObj;
}
class MyAPIRequestObjectMapperFactory() {
static ObjectMapper newInstance(IonSystem ionSystem) {
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
objectMapper.setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE);
objectMapper.setVisibility(PropertyAccessor.IS_GETTER, JsonAutoDetect.Visibility.NONE);
return objectMapper;
}
}
class CommonlyOwnedClassObjectMapperFactory() {
static ObjectMapper newInstance(IonSystem ionSystem) {
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.NONE);
objectMapper.setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.ANY);
objectMapper.setVisibility(PropertyAccessor.IS_GETTER, JsonAutoDetect.Visibility.ANY);
return objectMapper;
}
}
如何更新我的 ObjectMapper 以将不同的 ObjectMapper(由 CommonlyOwnedClassObjectMapperFactory 提供)用于 newObj,并继续将现有的对象映射器(MyAPIRequestObjectMapperFactory)用于MyAPIRequest 中的其余对象?
编辑: 我正在使用 Jackson-2.8,但如果需要可以升级到 2.9
【问题讨论】:
-
你用的是哪个版本的jackson??
-
@chinoy 我正在使用 Jackson-2.8
标签: java json jackson objectmapper jackson-databind