JSONObject JSONArray 에 대한 이해 및 사용법
이번 포스팅에서는 JSONObject 와 JSONArray에 대해서 알아보도록 하겠습니다.
우선 그 전에 JSON에 대해 알아보도록 하죠.
JSON이란 Javascript Object Notation 의 약자입니다.
해석으로만 본다면 자바스크립트 객체 표기법,
간단히 얘기한다면 데이터를 표시하는 방법이라고 생각하면 됩니다.
JSON의 두가지 기본구조가 JSONObject와 JSONArray 입니다.
이제 JSONObject와 JSONArray에 대해 알아보도록 하죠.
1. JSONObject
- 기본구조 : {String name : Value, String name2 : Value2 ...}
- 구조에 대한 설명
: JSONObject는 '{' 로 시작하고 '}' 로 끝내어 표현한다.
: {} 안에는 String으로된 Name과 Value의 쌍을 ':' 로 구분하여 사용한다.
: Name 과 Value의 구분은 ',' 로 한다.
: 비순서화된 SET
- 사용법(예)
JSONObject jObj = new JSONObject; // JSONObject 생성
jObj.put("name" : "geon"); // JSONObject에 값 넣기
jObj.put("age" : 30);
jObj.put("sex" : "male");
String data = jObj.toString(); // JSONObject를 String 에 담기
System.out.print(data);
- 결과값 : {"name" : "geon", "age" : 30, "sex" : "male"}
보통 자바 Spring 구조에서는 DB에서 받아온 값을 DAO에서 HashMap 형태로
Service에게 return 해주고
예) [DAO.java]
public List<HashMap<String, Object>> getList(SelectVO selectVO) {
return selectList("getList", selectVO);
}
DAO에서 HashMap 형태의 데이터를 받은 Service는
그 데이터를 JSONObject 로 받습니다.
예) [Service.java]
JSONObject successJObj = getResultJSON();
successJObj.put("getList", DAO.getList(growthVO));
return successJObj;
Controller에서는 그 JSONObject를 받아 ModelAndView 등 기타 형식으로 Web에 return 한다.
예) [Controller.java]
ModelAndView mav = getCommonView(type, "", "sea.farming.growth.detail");
JSONObject jObj = Service.getList(request, response);
mav.addObject("json", jObj);
return mav;
JSP에서는 Controller에서 받은 mav를 request로 받아 활용합니다.
예) [test.jsp]
<%
JSONObject jObj = (JSONObject)request.getAttribute("json");
%>
대락적인 설명이니 흐름만 이해하도록 합시다.
2. JSONArray
- 기본구조 : [{String name : Value}, {String name2 : Value2} ...]
- 구조에 대한 설명
: JSONArrayt는 '[' 로 시작하고 ']' 로 끝내어 표현한다.
: []안에는 JSONObject 나 String 값 등을 담을 수 있다.
: 각 object나 String 의 구분은 ',' 로 한다.
: 순서화된 SET
- 사용법(예)
//hashmap 형태로 데이터를 가져온다.
List<HashMap<String, Object>> indicatorMapList = growthDAO.getGrowthIndicatorDataList(groupIdList);
JSONArray jsonArrayList = new JSONArray(); // JSONArray 생성
for(int j = 0; j < indicatorMapList.size(); j++){ //가져온 hashmap 데이터의 갯수만큼 반복
//오브젝트를 생성해 가져온 JSONObject를 담는다.
JSONObject indicatorJobj = JSONObject.fromObject(indicatorMapList.get(j));
jsonArrayList.add(indicatorJobj);
}
- 결과값 :[ {"name" : "geon"}, {"age" : 30}, {"sex" : "male"}]
결과값은 오브젝트에서 가져온 데이터를 수정한 것이니 이해만 합니다.
JSONObject 안에는 String 뿐 아니라 리스트도 담을 수 있습니다.
[구조예]
"JObj" : {
"a" : "1"
"b" : [
{
},
{
}
]
}
실무에서도 정말 많이 사용되고 서버와 데이터를 주고 받는데
유용하니 확실히 알아 놓도록 합시다!!
http://jsonlint.com/ 에서 JSON 데이터의 유효성을 확인 할 수 있고, 형태를 보다 이해하기 쉽도록 변환해 주니 참고하고,
크롬에서 json 데이터를 보다 가독성 높게 보기 위해서는 아래의 Link를 참고하세요.
Link : 크롬에서 JSON 데이터 가독성 높히기 jsonview 활용법
'Programing > JSON' 카테고리의 다른 글
JAVA JSON String parsing String to JSON json 파싱 (1) | 2017.09.14 |
---|---|
크롬에서 JSON 데이터 가독성 높히기 jsonview 활용법 (0) | 2017.06.20 |
Json 데이터 ajax 전송 java Controller에서 받기 (0) | 2015.10.12 |
댓글