Flux d'API Fastjson
Fastjson nécessite l'API Stream lorsqu'il doit traiter du texte JSON très volumineux. L'API Stream est fournie dans la version fastjson-1.1.32.
Sérialisation
Sérialisation d'un tableau JSON très grand
Si votre format JSON est un énorme tableau JSON avec de nombreux éléments, appelez d'abord startArray, puis écrivez les objets un par un, puis appelez endArray.
JSONWriter writer = new JSONWriter(new FileWriter("/tmp/huge.json")); writer.startArray(); for (int i = 0; i < 1000 * 1000; ++i) { writer.writeValue(new VO()); } writer.endArray(); writer.close();
Sérialisation d'objets JSON très volumineux
Si votre format JSON est un énorme JSONObject avec de nombreuses paires clé/valeur, appelez d'abord startObject, puis écrivez la clé et la valeur une par une, puis appelez endObject.
JSONWriter writer = new JSONWriter(new FileWriter("/tmp/huge.json"));
writer.startObject();
for (int i = 0; i < 1000 * 1000; ++i) {
writer.writeKey("x" + i);
writer.writeValue(new VO());
}
writer.endObject();
writer.close();
Désérialisation
Exemple 3
JSONReader reader = new JSONReader(new FileReader("/tmp/huge.json")); reader.startArray(); while(reader.hasNext()) { VO vo = reader.readObject(VO.class); // handle vo ... } reader.endArray(); reader.close();
Exemple 4
JSONReader reader = new JSONReader(new FileReader("/tmp/huge.json")); reader.startObject(); while(reader.hasNext()) { String key = reader.readString(); VO vo = reader.readObject(VO.class); // handle vo ... } reader.endObject(); reader.close();