Fastjson API 스트림
Fastjson은 매우 큰 JSON 텍스트를 처리해야 하는 경우 Stream API가 필요합니다. Stream API는 fastjson-1.1.32 버전에서 제공됩니다.
직렬화
매우 큰 JSON 배열 직렬화
JSON 형식이 요소가 많은 거대한 JSON 배열인 경우 먼저 startArray를 호출한 다음 개체를 하나씩 작성한 다음 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();
매우 큰 JSON 개체 직렬화
JSON 형식이 키/값 쌍이 많은 거대한 JSONObject인 경우 먼저 startObject를 호출한 다음 키와 값을 하나씩 쓴 다음 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();
Deserialization
예 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();
예 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();