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