본문 바로가기
Back-end/JAVA & Spring

[Java] JsonObject , JsonArray 다루기 (JsonParser로 파싱하기)

by 꼬바리 2021. 5. 11.

데이터를 주고 받을 때 json형식을 많이 사용하는 JsonObject, JsonArray 사용법을 알아보겠습니다.

 

1. JsonObject

JsonObject는 객체(주로 String)을 Json객체로 바꿔주거나 Json객체를 새로 만드는 역할을 합니다.

 

ex)

JsonObject jsonVar = new JsonObject()
//json객체 생성
//json 객체에 key가 'key1'이고 value가 'value1'인 요소 추가
//{ "key1" : "value1" }

jsonVar.put("key1","value1");
//키값이 'key1'인 요소 추출하기

jsonVar.get('key1') /return 'value1'

Stirng을 json형태로 변환하기

String str = "{\"key1\",:\"value1\"}";
//str을 json객체로 변환

JsonObject jsonVar2 = new JsonObject(str);
//json객체로 변환되서 jsonVar2로 정의됨

2. JsonArray

json들이 들어있는 Array(json 이외의 다른 데이터도 들어갈 수 있음)

//json 두개 생성 후 JsonArray에 넣기
JsonObject json1 = new JsonObject();
json1.put("첫번째": 1);
JsonObject json2 = new JsonObject();
json1.put("두번째": 2);

//JsonArray 생성
JsonArray jArray = new JsonArray();
//JsonArray에 json추가(put)
jArray.put(json1);
jArray.put(json2);

//결과 
jArray = [
 { "첫번째 : 1},
 { "두번째 : 2}
]
//JsonArray에서 요소 추출하기(배열처럼 인덱스 사용)
jArray.get(0); // {"첫번째" : 1}

+

json 파싱(parsing)하기

3. JsonParser 사용

다음과 같은 데이터가 있을 경우(json안에 json)

jObject =
{
 "json1" : "test1",
 "json2" : {
   "json2-1" : "test2-1",
   "json2-2" : "test2-2"
  }
}

JsonParser를 사용하여 다음과 같이 파싱할 수 있다.

JsonParser jParser = new JsonParser();

JsonObejct jObject1 = (JsonObejct)jParser.parse(jObject) //json 전체 파싱
//jObejct1는 json 전체가 파싱됨
jObject1.get("json1") //return "test1"

//json안에 객체를 파싱하고 싶을때(key 'json2'의 value는 json객체)
JsonObejct jObject2 = (JsonObejct)jParser.parse("json2") //key값으로 파싱
//jObject2는 {
		"json2-1" : "test2-1",
                "json2-2" : "test2-2"
             }이 파싱됨
jObject2.get("json2-1") //return "test2-1"

 

 

출처: androman.tistory.com/38

728x90
반응형

댓글