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