jackson:解析非类型化文档的最快方法

cl25kdpy  于 2021-07-11  发布在  Java
关注(0)|答案(0)|浏览(177)

我目前正在用jackson解析一个json文档,代码如下:

public List<Object> parse(String resource) {
    List<Object> configuration;
    try (FileInputStream fis = new FileInputStream(resource);
      InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
      Reader reader = new BufferedReader(isr, 1024000)) {

      long start = System.currentTimeMillis();
      configuration = parse(reader);
      long end = System.currentTimeMillis();
      LOG.info("loaded JSON resource: {} ms", end - start);
    } catch (Exception e) {
      // ...
    }
    return configuration;
}

@SuppressWarnings("unchecked")
private List<Object> parse(Reader reader) throws IOException {
  ObjectMapper mapper = new ObjectMapper();
  return mapper.readValue(reader, List.class);
}

结果是列表和Map类型的“非类型化”集合,然后由应用程序进行处理。注意:不,将数据解析为某种类型的类模型不是一个选项,因为内容没有固定的结构。
在嵌入式环境中解析一个~600kb的json文档目前大约需要45秒,我们希望能大大加快这一速度。有什么关于如何加快解析速度的提示吗?我是偶然来的 com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer 这似乎非常符合我的需求,但由于我的经验有限,我至今未能获得一个工作示例(解析器/反序列化器/上下文)。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题