假设我有一个字符串的迭代器。我想创建一个Java对象的迭代器,并有效地从一个转换为另一个。我不确定最好的方法是什么...我见过的文档似乎为每个字符串创建一个新的解析器,但我不确定是否有更简单的方法?
谢谢!
答案 0 :(得分:1)
通常我会建议只创建新的JsonParser
(它确实有效),但是如果JSON字符串非常短,则替代方法是创建等效于StringReader
的工作于List或数组的字符串 - 有点像java.io.SequenceInputStream
,但有一个适用于字符串。
这应该有一点点开销,只要你注意不要连接字符串,而只是表示Reader
相当于连续序列。
杰克逊然后可以使用这样的阅读器读取一系列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();
}