Apabila cuba menghuraikan fail JSON yang luas, seperti data lelongan besar-besaran yang disediakan oleh Blizzard Entertainment, mengenal pasti strategi yang paling berkesan adalah penting. Pendekatan konvensional, seperti penghuraian baris demi baris atau pemisahan fail, terbukti tidak berkesan untuk set data yang begitu besar.
Perpustakaan Pemprosesan JSON Jackson muncul sebagai penyelesaian yang luar biasa. Jackson menggabungkan penstriman dan penghuraian model pokok dengan lancar, membolehkan traversal keseluruhan fail secara cekap secara penstriman, sambil pada masa yang sama membenarkan akses kepada objek individu sebagai struktur pokok.
Penstriman dan Penghuraian Model Pokok dengan Jackson :
Pertimbangkan JSON berikut fail:
{ "records": [ {"field1": "aaaaa", "bbbb": "ccccc"}, {"field2": "aaa", "bbb": "ccc"} ], "special message": "hello, world!" }
Strategi penstriman dan penghuraian model pokok Jackson membolehkan yang berikut:
Sampel Kod:
import org.codehaus.jackson.map.*; import org.codehaus.jackson.*; import java.io.File; public class ParseJsonSample { public static void main(String[] args) throws Exception { JsonFactory f = new MappingJsonFactory(); JsonParser jp = f.createJsonParser(new File(args[0])); JsonToken current; while (current != JsonToken.END_OBJECT) { String fieldName = jp.getCurrentName(); current = jp.nextToken(); if (fieldName.equals("records")) { JsonNode node; while (current != JsonToken.END_ARRAY) { node = jp.readValueAsTree(); System.out.println("field1: " + node.get("field1").getValueAsText()); System.out.println("field2: " + node.get("field2").getValueAsText()); } } else { jp.skipChildren(); } } } }
Kod ini secara berkesan menunjukkan keupayaan penstriman gabungan dan penghuraian model pokok Jackson. Ia membaca fail JSON yang besar, menghuraikan maklumat khusus (seperti nilai "field1" dan "field2") ke dalam struktur pepohon dan menyediakan akses rawak kepada data tersebut, sambil mengekalkan penggunaan memori yang minimum.
Atas ialah kandungan terperinci Bagaimanakah Penstriman dan Penghuraian Model Pokok Jackson Dapat Mengendalikan Fail JSON Besar secara Optimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!