Java 在Jackson中,如何将不可映射的Iterable序列化为数组?
基本上,在不改变渐近运行时的情况下,让测试通过的最简单方法是什么(即,请不要告诉我将Java 在Jackson中,如何将不可映射的Iterable序列化为数组?,java,json,jackson,Java,Json,Jackson,基本上,在不改变渐近运行时的情况下,让测试通过的最简单方法是什么(即,请不要告诉我将set1和set2复制到列表中,因为Iterables.concat()的全部目的是避免复制): @测试 public void jacksonObjectMapPerserializeSiteRableList()引发IOException{ SortedSet set1=新树集(); 第1条增补(“a”); 第1条增补(“b”); 第1条增补(“c”); SortedSet set2=新树集(); 第2条增补
set1
和set2
复制到列表中,因为Iterables.concat()
的全部目的是避免复制):
@测试
public void jacksonObjectMapPerserializeSiteRableList()引发IOException{
SortedSet set1=新树集();
第1条增补(“a”);
第1条增补(“b”);
第1条增补(“c”);
SortedSet set2=新树集();
第2条增补(“d”);
第2条增补(“e”);
第2条增补(“f”);
ObjectMapper mapper=新的ObjectMapper();
//这部分通过。
StringWriter set1Writer=新StringWriter();
mapper.writeValue(set1Writer,set1);
assertEquals(“[\'a\',\'b\',\'c\']”,set1Writer.toString());
//这部分失败了。
//实际值为:{“empty”:false}
StringWriter设置编写器=新建StringWriter();
writeValue(setsWriter,com.google.common.collect.Iterables.concat(set1,set2));
assertEquals(“[\“a\”、“b\”、“c\”、“d\”、“e\”、“f\”]”,setsWriter.toString());
}
显然,解决方案是使用GuavaModule
配置ObjectMapper
:
ObjectMapper mapper = new ObjectMapper().registerModule(new GuavaModule());
我认为这就是相关的问题/解决方案:显然,解决方案是使用
GuavaModule
配置ObjectMapper
:
ObjectMapper mapper = new ObjectMapper().registerModule(new GuavaModule());
我认为这是相关的问题/解决方案: