1
我有一个JSON(来自流)。数据非常庞大。所以我不想反序列化成一个具体的Java对象。所以我想用Jackson解析器。将使用杰克逊输入流将所有内容带入内存
JsonFactory factory = new JsonFactory();
JsonParser parser = factory.createJsonParser(stream);
我的目标是让(从对象的特定属性)从流的特定部分
{
"array": [],
"map": {},
"bool": "true",
"string": "abcd"
}
例如:我想只有在
地图或阵列等但是我的问题是,当我使用inputstream并解析它(获取流的特定部分)时,它(整个JSON)会一次被带入内存吗?
这(解析)方式和反序列化成一个对象(然后从对象中获取特定成员)之间的区别是什么?
如果我使用'JsonNode rootNode = mapper.readValue(src,JsonNode.class);''src'是流,它会带来整个JSON到内存? – Ashwin
是的。因为杰克逊需要读取整个json来完成给定类的映射。 – Magus
因此,我需要直接访问一个元素('array'或'map'),是否需要使用流(而不是树模型)? (我不想将整个JSON带入内存) – Ashwin