使用Jackson不断解析一堆字符串的最有效方法是什么?

时间:2011-12-19 21:26:39

标签: java jackson

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

谢谢!

1 个答案:

答案 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();
}