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

标签 java jackson

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

谢谢!

最佳答案

通常我建议只创建新的 JsonParser (它确实有效),但如果 JSON 字符串非常短,替代方法是创建与 StringReader 等效的方法适用于列表或字符串数​​组——有点像 java.io.SequenceInputStream,但适用于字符串。 只要您注意不要连接字符串,而只是表示 Reader 而不是等效的连接序列,这应该具有较低的开销。

Jackson 然后可以使用此类 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();
}

关于java - 使用 Jackson 不断解析一堆字符串的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8567775/

相关文章:

java - Spring JPA - 更新多个字段的最佳方式

java - 在 java 中正确声明 long 类型?

javascript - Spring MVC 4 + jackson + LocalDate

java - 如何使用DateTimeFormatter在java8中处理yyyy-mm和yyyy

java - Gradle深度讲解中的build-by-convention是什么?

java - 在 java 日志框架场景中寻找方法

java - jackson Blob 异常

java - 字段的特定 MessageBodyWriter

java - 在 Java Servlet 中使用 final static 常量是个好主意吗?

java - POST 方法中 JSON 中的无关后缀数据