我目前正在用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
这似乎非常符合我的需求,但由于我的经验有限,我至今未能获得一个工作示例(解析器/反序列化器/上下文)。
暂无答案!
目前还没有任何答案,快来回答吧!