ArrayNode

Json의 이해

2013. 11. 5. 11:30
반응형

 

만들고자 하는 구조는

{

  "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);

 

 

 

이런 식이다. 간단한거 같은데 많이 헷갈린다;;

 

 

 

 

 

 

반응형
반응형

 

 

 

ObjectNode 와 JsonNode의 차이가 뭔지 몰랐는데 이런 차이라고 한다.

 

 

Json으로 나타난 정보에서

 

[ ]

표시로 시작되는 건 배열이기 때문에 Arraynode 이며

 

{ }

표시로 시작하는 건 Json 값이기 때문에 JsonNode 이다

 

 

그런데 JsonNode는 값을 불러올 수는 있지만 넣을 수는 없기 때문에

 

값을 넣기 위해서는 ObjectNode를 사용한다.

 

ObjectNode는 값을 불러오고 넣을 수도 있다.

 

 

요약하면

 

JsonNode 는 값을 읽을 수만 있고 ObjectNode는 값을 읽고 쓸 수 있다.

 

Json 사용법 링크

http://yonoo88.tistory.com/322

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'지식메모 > JAVA' 카테고리의 다른 글

숫자 천단위 콤마 입력하기  (0) 2014.09.25
Json의 이해  (0) 2013.11.05
대문자 소문자 서로 변환하기  (0) 2013.10.08
java 문자열 구분자로 자르기  (0) 2013.10.02
mp3 ID3 v2 태그 파싱하기  (3) 2013.08.27

+ Recent posts