Programing/JSON

JSONObject JSONArray 에 대한 이해 및 사용법

리커니 2014. 3. 27.
반응형

 

JSONObject JSONArray 에 대한 이해 및 사용법

 

 

이번 포스팅에서는 JSONObject 와 JSONArray에 대해서 알아보도록 하겠습니다.

우선 그 전에 JSON에 대해 알아보도록 하죠.

 

JSON이란 Javascript Object Notation 의 약자입니다.

해석으로만 본다면 자바스크립트 객체 표기법, 

간단히 얘기한다면 데이터를 표시하는 방법이라고 생각하면 됩니다.

 

 JSON의 두가지 기본구조가 JSONObjectJSONArray 입니다.

 

이제 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 활용법

 

크롬에서 JSON 데이터 가독성 높히기 jsonview 활용법

크롬에서 JSON 데이터 가독성 높히기 jsonview 활용법 json 데이터를 크롬에서 확인하면 정말 보기 싫죠.. 그래서 브라우저에 출력된 데이터를 긁어서 https://jsonlint.com/ 같은 사이트를 통해 가독성 좋게 확인..

aljjabaegi.tistory.com

 

반응형

댓글

💲 추천 글