본문 바로가기

프로그래밍

[Java]자바 json형식의 문자열을 파싱해보자(gson이용)

자바 json형식의 문자열을 파싱해보자.


먼저 json이란 (JavaScript Object Notation) 약어로 데이터 교환 형식이다. 

배열은 [key:value, {}]로 객체는 {key:value} 로 표현한다. 또한 배열은 그자체로 value가 될 수 있다.

key:[]으로 표현가능


json형식을 파싱해주는 기본적인 라이브러리는 이클립스에 없다. 그래서 google에서 만든 gson을 이용하겠다.


1.gson 라이브러리 다운로드



2.다운로드한  jar파일을 이클립스에 추가



3.gson으로 json형식 파싱


라이브러리도 추가했으니 이제 json형식 문자열을 파싱 해보도록 하겠다.


다음과 같은 문자열을 만들었다.


String str = "[{'INDEX':0, 'TYPE':'동물', 'NAME':'토끼'}, {'INDEX':1, 'TYPE':'동물', 'NAME':'거북이'}]";



파싱을 위한 JsonParser 객체를 만든다.


JsonParser parser = new JsonParser();



가장 처음에 만나것은 [] 대괄호이다. 배열 즉 Array이므로 JsonArray 객체에 넣어주자.

JsonArray jsonArray = (JsonArray) parser.parse(str);

System.out.println(jsonArray);


실행결과 : [{"INDEX":0,"TYPE":"동물","NAME":"토끼"},{"INDEX":1,"TYPE":"동물","NAME":"거북이"}]



중괄호{}안의 키 벨류값을 이용할 때에는 객체, 즉 JsonObject 객체에 넣어주자.

JsonObject object = (JsonObject) jsonArray.get(0);

System.out.println(object);


실행결과 : {"INDEX":0,"TYPE":"동물","NAME":"토끼"}



이번엔 JsonObject의 각각 key값으로 value값을 가져오자

String index = object.get("INDEX").getAsString();

String type = object.get("TYPE").getAsString();

String name = object.get("NAME").getAsString();

System.out.println("INDEX : "+index);

System.out.println("TYPE : "+type);

System.out.println("NAME : "+name);


실행결과 : INDEX : 0

                 TYPE : 동물

                 NAME : 토끼