0
比方说,我有一个字符串的迭代器。我想创建一个Java对象的迭代器,并有效地从一个转换到另一个。我不知道最好的办法是......我看过的文档似乎为每个字符串创建了一个新的解析器,但我不确定是否有更简单的方法?使用Jackson不断解析一串字符串的最有效方法是什么?
谢谢!
比方说,我有一个字符串的迭代器。我想创建一个Java对象的迭代器,并有效地从一个转换到另一个。我不知道最好的办法是......我看过的文档似乎为每个字符串创建了一个新的解析器,但我不确定是否有更简单的方法?使用Jackson不断解析一串字符串的最有效方法是什么?
谢谢!
通常我会建议只是创造新的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();
}
快速的问题:通过字符串的迭代器,你的意思是一个基本上区分JSON文件的序列?或者有些不同? – StaxMan 2011-12-20 16:28:17
是的,除了文件,不同的字符串...但是,基本上是这样 – 2011-12-20 18:30:44