Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Jackson中,如何将不可映射的Iterable序列化为数组?_Java_Json_Jackson - Fatal编程技术网

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());
我认为这是相关的问题/解决方案: