Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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连续解析一组字符串最有效的方法是什么?_Java_Jackson - Fatal编程技术网

Java 使用Jackson连续解析一组字符串最有效的方法是什么?

Java 使用Jackson连续解析一组字符串最有效的方法是什么?,java,jackson,Java,Jackson,假设我有一个字符串迭代器。我想创建Java对象的迭代器,并高效地从一个对象转换到另一个对象。我不确定最好的方法是什么…我看到的文档似乎为每个字符串创建了一个新的解析器,但我不确定是否有更简单的方法 谢谢 通常我会建议只创建新的JsonParser(它确实有效),但如果JSON字符串非常短,另一种方法是创建等效的StringReader,它可以在字符串列表或字符串数组上工作——有点像java.io.SequenceInputStream,但可以在字符串上工作。 只要您注意不要串联字符串,而只是在串

假设我有一个字符串迭代器。我想创建Java对象的迭代器,并高效地从一个对象转换到另一个对象。我不确定最好的方法是什么…我看到的文档似乎为每个字符串创建了一个新的解析器,但我不确定是否有更简单的方法


谢谢

通常我会建议只创建新的
JsonParser
(它确实有效),但如果JSON字符串非常短,另一种方法是创建等效的
StringReader
,它可以在字符串列表或字符串数组上工作——有点像
java.io.SequenceInputStream
,但可以在字符串上工作。 只要您注意不要串联字符串,而只是在串联序列的等价部分上表示
Reader
,这应该会有更低的开销

然后,Jackson可以使用这样的读取器读取JSON值序列——或者一个接一个地显式读取,或者更方便地使用
ObjectMapper.readValues(…)
(或者来自
ObjectReader
的方法,您可以使用各种工厂方法
ObjectMapper
创建该方法的实例):例如

ObjectMapper mapper = new ObjectMapper();
MyReader reader = new MyReader(listOfStrings);
MappingIterator<BeanType> it = mapper.reader(BeanType.class).readValues(reader);
while (it.hasNext()) {
  BeanType bean = it.nextValue();
}
ObjectMapper mapper=new ObjectMapper();
MyReader=新的MyReader(列表字符串);
MappingIterator it=mapper.reader(BeanType.class).readValues(reader);
while(it.hasNext()){
beantypebean=it.nextValue();
}

Quick question:字符串迭代器是指一系列基本上不同的JSON文档?或者不同的东西?是的,除了文件,不同的字符串…但是是的,基本上就是这样