Json의 이해
만들고자 하는 구조는
{
"j1":{
"j2":{
"arr1":[{"j3":"a"},{"j4":"b"}]
}
}
}
이런 유형의 구조이다. 그렇다면 필요한 코드는
ObjectNode json = json.newObject();
ObjectNode j1 = json.newObject();
ObjectNode j2 = json.newObject();
ObjectNode arr1 = json.newObject();
ObjectNode j3 = json.newObject();
ObjectNode j4 = json.newObject();
ArrayNode array = null;
이렇게 한 뒤 구현하려면 역순으로 구현한다.
json객체 생성
j3.put("j3","a"); --> {"j3":"a"}
j4.put("j4","b"); --> {"j4":"b"}
json객체를 array라는 배열에 삽입
array.add(j3); --> [{"j3":"a"}]
array.add(j4); --> [{"j3":"a"},{"j4":"b"}]
array배열을 arr1이라는 key로 arr1 jsonobject에 삽입
arr1.put("arr1",array)
--> {arr1:[{"j3":"a"},{"j4":"b"}]}
arr1 jsonObject를 j2라는 key로 j2 jsonObject에 삽입
j2.put("j2",arr1);
--> {j2:{"arr1":[{"j3":"a"},{"j4":"b"}]}}
j2 jsonObject를 j1라는 key로 j1 jsonObject에 삽입
j1.put("j1",j2);
--> {"j1":{"j2":{"arr1":[{"j3":"a"},{"j4":"b"}]}}}
이렇게 된다.
역순으로 jsonObject생성해서 배열에 넣고,
그 배열을 jsonobject 생성해서 집어넣고,
그걸 또 jsonObject에 넣는 역순이다.
위 소스를 쉽게쓰면
ObjectNode json1;
ObjectNode json2;
ObjectNode json3;
arrayNode arr = null;
json3 = json.newObject();
json3.put("j3","a");
arr.add(json3);
json3 = json.newObject();
/*
여기서 json3은 객체 새로 생성안하면
{"j3":"a", "j4", "b"}가 되고,
객체를 새로 생성하면
{"j4":"b"}가 된다.
초기화 안하면 아래 arr.add에서
{"j3":"a"},{"j3":"a","j4":"b"} 로 들어가게된다.
*/
json3.put("j4","b");
arr.add(json3);
json3 = json.newObject();
json3.put("arr1",arr);
json2 = json.newObject();
json2.put("j2",json3);
json1 = json.newObject();
json1.put("j1",json2);
이런 식이다. 간단한거 같은데 많이 헷갈린다;;
'지식메모 > JAVA' 카테고리의 다른 글
Java 텍스트 파일 생성과 읽기를 이용한 누적시간 계산하기 (0) | 2014.12.29 |
---|---|
숫자 천단위 콤마 입력하기 (0) | 2014.09.25 |
대문자 소문자 서로 변환하기 (1) | 2013.10.08 |
java 문자열 구분자로 자르기 (0) | 2013.10.02 |
ObjectNode 와 JsonNode 차이? (0) | 2013.09.06 |