杰克逊在两个位置反序列化与反序列化整个 JSON 的性能


我不知道

杰克逊是如何反序列化的。我有一个 JSON,只需要某些部分。

ObjectMapper mapper = new ObjectMapper();

性能在以下两者之间有何变化:

mapper.readerFor(Integer.class).at("/code").readValue(inputStream);
mapper.reset();    
mapper.readerFor(MyClass[].class).at("/level1/level2").readValue(inputStream); 

阅读整个 JSON:

mapper.readValue(inputStream, Map.class);

由于 JSON 对象中的键顺序不是固定的,因此无法知道所需键在输入流中的位置。

在最坏的情况下,如果所需的密钥是最后一个,则必须解析整个流。平均而言,在读取单个密钥时,可能会提高性能,但基准测试是找出您正在使用的数据的可靠方法。

最新更新