2011-12-19 20 views
0

比方说,我有一个字符串的迭代器。我想创建一个Java对象的迭代器,并有效地从一个转换到另一个。我不知道最好的办法是......我看过的文档似乎为每个字符串创建了一个新的解析器,但我不确定是否有更简单的方法?使用Jackson不断解析一串字符串的最有效方法是什么?

谢谢!

+0

快速的问题:通过字符串的迭代器,你的意思是一个基本上区分JSON文件的序列?或者有些不同? – StaxMan 2011-12-20 16:28:17

+0

是的,除了文件,不同的字符串...但是,基本上是这样 – 2011-12-20 18:30:44

回答

1

通常我会建议只是创造新的JsonParser(和它的工作),但如果JSON字符串是很短的,另一种方法是创建的StringReader上列表或字符串数​​组相当于作品 - 有点像java.io.SequenceInputStream ,但是可以在Strings上运行。 这应该有点低的开销,只要你小心不要连接字符串,但只是代表Reader相当于连接的序列。 (从ObjectReader,例如其中您可以创建使用各种工厂方法ObjectMapper拥有或方法),要么通过一个或多个方便的明确之一,采用ObjectMapper.readValues(...) - 然后

杰克逊可以阅读使用这种阅读器JSON值的序列像

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(); 
} 
相关问题