Programming/JAVA / / 2019. 12. 16. 10:12

java json 한줄씩 작성하기(Jackson streaming example)

반응형

 

java json 사용하여 .json 파일을 만들때 heap 메모리가 적거나 서버 리소스를 적게 사용하기 위해

 

streaming 을 사용합니다. 일반적인 json 파일을 만들때 파일에 한꺼번에 사용하기 때문에,

 

메모리 부하가 발생 할 수있습니다.

 

streaming을 사용하면 한줄씩 파일에 쓰기 때문에 자원를 효율적 으로 사용 할 수있습니다.

 

 

실습

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package json;
 
import java.io.FileWriter;
 
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerator;
 
public class Test {
    public static void main(String[] args) {
        try {
            JsonFactory jfactory = new JsonFactory(); // factory 생성
            
            // 저장할 파일 위치 
            JsonGenerator jGenerator = jfactory.createJsonGenerator(new FileWriter("C:\\Users\\USER\\Desktop\\java-workspaces\\JavaTest\\result3.json"));
            jGenerator.useDefaultPrettyPrinter(); // 자동개행
            jGenerator.writeStartObject();                    //{
            jGenerator.writeStringField("name""kim");        //        "name" : "kim",            
            jGenerator.writeNumberField("age"30);            //        "age" : 30,
 
            jGenerator.writeFieldName("skills");            //        "skills" :
            jGenerator.writeStartArray();                    //            [
 
            jGenerator.writeString("Java");
            jGenerator.writeString("Spring");
            jGenerator.writeString("JS");
            jGenerator.writeString("SQL");
            jGenerator.writeEndArray();                        //            ]
              
            jGenerator.writeFieldName("address");            //        "address"
            jGenerator.writeStartObject();                    //            {
            jGenerator.writeStringField("city""seoul");
            jGenerator.writeStringField("country""korea");
            jGenerator.writeEndObject();                    //            }
            jGenerator.writeEndObject();                    //}
            jGenerator.close();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}
 
cs

 

 

결과

 

1
2
3
4
5
6
7
8
9
{
  "name" : "kim",
  "age" : 30,
  "skills" : [ "Java""Spring""JS""SQL" ],
  "address" : {
    "city" : "seoul",
    "country" : "korea"
  }
}
cs

 

 

위와 같이 파일이 만들얼 집니다.

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유