본문 바로가기

jQuery/jQuery json

jQuery json parsing example

jQuery ajax 요청시 JSP 에서 JSON 포맷으로 응답하는 예


클라이언트측 코드 ( 응답 데이터 형식을 text 으로 설정한 경우이므로 parseJSon()을 이용해야 한다 )

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>jQuery ajax Request and json Response</title>
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('button').click(function(){
        $.ajax({
            type:"GET",
            url:"book_json.jsp",
            dataType:"text",
            success:function(json){
                var list = $.parseJSON(json);
                var listLen = list.length;
                var contentStr = "";
                for(var i=0; i<listLen; i++){
                    contentStr += list[i].book.title+", "+ list[i].book.price +"</br>";
                }
                $("#before").append(json);
                $("#after").append(contentStr);
            }
        })
    });
});
</script>
</head>
<body>
<div id="before"></div>
<button>AJAX 요청-> JSON 응답</button>
<div id="after"></div>
</body>
</html>



서버측 JSP (book_json.jsp)

<%@ page language="java" contentType="text/plain; charset=utf-8"
    pageEncoding="utf-8" trimDirectiveWhitespaces="true"%>
<%
	String title = "홍길동전";
	int price = 32;
%>
[
	{"book":{"title":"Harry Porter",  "price":"29.99"}},
	{"book":{"title":"<%=title%>",    "price":"<%=price%>"}},
	{"book":{"title":"Learning XML",  "price":"39.95"}}
]



jQuery AJAX 요청시 응답 데이터 형식을 json 으로 설정한 경우


응답을 수신하여 바로 json 객체로 사용할 수 있다.


응답 데이터의 형식을 json 으로 수신하기 위해 설정한 클라이언트

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery ajax request json</title>
<script src="jquery-2.1.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
	$('button').click(function(){
		ajax_req();
	});
});

function ajax_req()
{
    var params = {"name":"홍길동", "password":"123abc"};
    $.ajax({
        type: "POST", 
        url: "get_json_info.jsp", 
        data: params,
        dataType: "json",
        contentType:'application/x-www-form-urlencoded; charset=UTF-8',
        success: function(jsonObj)
        {
        	var name = jsonObj.name;
        	var phone = jsonObj.phone;
        	
            $('#div1').html(name+','+phone);
        }
    });
}
</script>
</head>
<body>
<button>Request</button>
<div id="div1"></div>
</body>
</html>



JSON 문자열을 응답으로 전송하는 서버측 코드(JSP)

<%@ page language="java" contentType="text/plain; charset=utf-8" pageEncoding="utf-8" trimDirectiveWhitespaces="true"%> <% String name = request.getParameter("name"); %> {"name":"<%=name%>", "phone":"010-9874-2516"}



JSP에서 JSON 배열을 클라이언트로 전송하고 클라이언트측에서 JSON 배열을 받아서 사용하는 예


JSON 포맷의 배열을 수신하고 사용하는 클라이언트측 코드

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery ajax request json</title>
<script src="jquery-2.1.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
	$('button').click(function(){
		ajax_req();
	});
});

function ajax_req()
{
    var params = {"dept":"인사과"};
    $.ajax({
        type: "POST", 
        url: "get_json_info.jsp", 
        data: params,
        dataType: "json",
        contentType:'application/x-www-form-urlencoded; charset=UTF-8',
        success: function(jsonObj)
        {
        	for(var i in jsonObj) {
        		var dept =jsonObj[i].dept;
        		var name = jsonObj[i].name;
        		var phone = jsonObj[i].phone;
        		$('#div1').append(dept+','+name+','+phone).append('<br>');
        	}
        }
    });
}
</script>
</head>
<body>
<button>Request</button>
<div id="div1"></div>
</body>
</html>


JSON 배열 포맷을 클라이언트측에 전송하는 서버측 코드 (JSP)

<%@ page language="java" contentType="text/plain; charset=utf-8" pageEncoding="utf-8" trimDirectiveWhitespaces="true"%> <% String dept = request.getParameter("dept"); %> [ {"dept":"<%=dept%>", "name":"홍길동", "phone":"010-9874-2516"}, {"dept":"<%=dept%>", "name":"김재동", "phone":"010-1293-8564"}, {"dept":"<%=dept%>", "name":"유인섭", "phone":"010-7359-4519"} ]