Notice
Recent Posts
Recent Comments
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

DeFacto-Standard IT

Object Serialization (JSON) (3) - net.sf.json 본문

SpringFramework/References

Object Serialization (JSON) (3) - net.sf.json

defacto standard 2018. 5. 3. 22:50

JSONObject jObject = new JSONObject();

JSONArray jArray = new JSONArray();


JSON 포맷의 객체를 직접 조합할 수 있어 편리하다.


다만, 한 개의 객체만 있더라도 이 객체에 대한 키값이 존재해야 한다.


객체 내에 있는 필드에 대한 키값이 아닌, 객체 자체에 대한 키값을 의미한다.


길이가 길어진다면 점점 복잡해지는 경향이 있다.


한 객체의 정보만을 넘기는 것이 아니라, 여기에 부가적인 정보까지 포함하여 보내야 하는 경우에 사용했다.


부가적인 정보를 포함시키기 위해, 이를 위한 Class를 생성하는 것도 좀 아닌 것 같아서,


Response에 객체 정보 뿐만 아니라, 추가적인 정보를 첨가하는 클래스들을 만들고, 이 내에서는 net.sf.json 라이브러리의 객체를 사용하여 추가하는 경우에 사용했다.


JSON 객체의 구성이 바뀐다면 소스코드가 굉장히 복잡해지기 때문에, 간단하게 JSON Object를 만드는 경우에만 사용하도록 하자.


public class Main {
public static void main(String args[]) {

Person p = new Person();
p.setAge(10);
p.setGrade('A');
p.setName("ycp");
p.setSubName("YCPark");

JSONObject jObject = new JSONObject();
JSONArray jArray = new JSONArray();

jObject.put("p1",p); // 무조건 키값이 있어야 한다.
jObject.put("array", jArray); // 객체가 할당만 되고 내용이 없어도 들어간다

jArray.add(p); // 객체가 1개라도 리스트 방식으로 들어간다.
jArray.add(jObject); // jObject가 그대로 들어간다.

System.out.println(jObject);
System.out.println(jArray);
}
}


실행 결과는 다음과 같다.



Comments