서버프로그램

JSON 사용하기, get 함수 설정

ykm1256 2020. 6. 17. 17:31

1. JSON 라이브러리 다운

https://mvnrepository.com/

 

Maven Repository: Search/Browse/Explore

Bus Storage Last Release on Jun 16, 2020

mvnrepository.com

위 사이트 접속 후 JSON simple 검색 -> 1.1.1 버전 -> https://mvnrepository.com/

 

Maven Repository: Search/Browse/Explore

 

Bus Storage Last Release on Jun 16, 2020

 

mvnrepository.com

위 사이트 접속 후 JSON simple 검색 -> 1.1.1 버전 -> view all -> json-simple-1.1.1.jar 다운

다운받은 파일 WEB-INF/lib 폴더로 이동

 

2. 데이터를 받아서 JSON으로 처리하기

<%
request.setCharacterEncoding("utf-8");
JAddressDAO dao = JAddressDAO.getInstance();
String dong = request.getParameter("dong");
ArrayList<JZipCode> arr = dao.zipRead(dong);	// json형태로 바꿔서 콜백함수에 뿌려주기

JSONArray jarr = new JSONArray();
for(JZipCode z : arr){
	JSONObject obj = new JSONObject();
	obj.put("zipcode",z.getZip_num());
	obj.put("sido",z.getSido());
	obj.put("gugun",z.getGugun());
	obj.put("dong",z.getDong());
	obj.put("bunji",z.getBunji());
	jarr.add(obj);
}
out.println(jarr.toString());
%>

 - dao 객체의 zipRead()메서드로 검색한 결과를 받아와서 arr 배열에 저장

 - JSONArray형 jarr배열 생성

 - JSONObject형 obj 객체 생성하여 arr에 저장된 값을 obj 객체에 넣고 jarr에 대입

 - for문으로 모든 데이터가 jarr 배열에 입력된 후 jarr을 콜백함수에 전달

 

3. JSON 데이터 출력하기

$(function(){
	$("#send").click(function(){
		$.get("jZipCheckPro.jsp",
				{"dong":$("#dong").val()},
				function(data){
					data = $.parseJSON(data);
					var htmlStr = "<table>";
					for(var i=0;i<data.length;i++){
						htmlStr += "<tr>";
						htmlStr += "<td>"+data[i].zipcode+ "</td>";
						htmlStr += "<td>"+data[i].sido+ "</td>";
						htmlStr += "<td>"+data[i].gugun+ "</td>";
						htmlStr += "<td>"+data[i].dong+ "</td>";
						htmlStr += "<td>"+data[i].bunji+ "</td>";
						htmlStr += "</tr>";						
					}
					htmlStr += "</table>";
					$("#area").html(htmlStr);
				}
		)
	});
})

- JSON 타입 데이터를 받아오면 위에 출력된 것 처럼 [{데이터},{데이터}] 형식으로 가져온다.

- 이를 $.parseJSON을 이용해서 데이터를 parse하여 값들을 출력한다.

- $.get대신에 $.getJSON을 사용하면 parse하지 않고 바로 값들을 출력할 수 있다.

- 태그들과 데이터를 합쳐서 htmlStr변수에 넣은 후 html메서드로 #area영역에 가져온 값들을 출력하였다.

 


get()메서드 return 설정

: get()메서드를 generate로 자동으로 만들 때 return 값을 설정한다.

삼항연산자를 사용하여 null값이면 공백, 아니라면 trim으로 공백을 제거한 원래의 값이 return된다.