我正在使用JSONAPI,因此我需要包装一些类,但不是所有类,例如:
{"users": {"aKey": "aValue"}} // wrapped.
{"aKey": "aValue"} // not wrapped.
有没有办法动态地或从类本身禁用此功能?,
我尝试这样:
要包装/解开,我正在这样做:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(SerializationFeature.WRAP_ROOT_VALUE);
objectMapper.enable(DeserializationFeature.UNWRAP_ROOT_VALUE);
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
JacksonConverterFactory jacksonConverterFactory = JacksonConverterFactory.create(objectMapper);
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.interceptors().add(new LoggingInterceptor());
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.client(okHttpClient)
.addConverterFactory(jacksonConverterFactory)
.build();
我需要一些POJO禁用该功能,这可能吗?
谢谢。
参考方案
目前没有。在FasterXML/jackson-databind#1022下跟踪
解决方法是,您可以创建两个不同的改造实例,其中一个实例启用了root启用的转换器工厂,另一个实例没有启用。
杰克逊2.6.5我尝试将YAML文件映射到包含Integer属性的POJO,当它读取数字属性时会抛出: com.fasterxml.jackson.databind.JsonMappingException :(为java.lang.NullPointerException)有趣的是,如果我单引号文件中的数字属性,它将解析它们很好(我想它将字符串转换为整数)…
Jackson:使用不同的属性名称序列化/反序列化 - java我有这个POJO:public class SetPoint { private String tagName; //more fields //getters and setters } 我从REST API获取SetPoints,对它们进行处理,然后再次发送。问题是我想从JSON反序列化SetPoint,例如:{ "tagnameOpc…
无法使用crontab访问jarfile - java我有两个要使用crontab运行的jar文件。假设有一个A和B jarfile。当我想为A jarfile运行crontab时,crontab可以正常工作。但是,当我要运行B jarfile时,crontab无法访问jarfile。哪里可能出问题?问题出在jarfile还是crontab设置上?这是我的crontab设置0 12,14 * * * root …
如何删除杰克逊反序列化的未知枚举键? - java我有一个Map<Alert, Boolean>映射,其中填充了相应的JSON:{ "BUTTON": true, "UNKNOWN": false } 我发现我可以将DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL的Jackson配置为true,…
如何将Jackson的TypeReference与泛型一起使用? - java对于json映射,我使用以下方法:public static <T> T mapJsonToObject(String json, T dtoClass) throws Exception { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(json, new T…