본문 바로가기

개발

JSON

728x90

JSON?

javascript object Notation

Name / value 쌍으로 이루어진 데이터 객체

개방형 표준 데이터 형식

비동기 브라우저 서버 통신을 위해 xml을 대체하는 데이터 전송 형식

 

ajax 이용해서 서버와 json 데이터 주고 받기

: 서버의 서블릿과 json 을 사용하려면 json라이브러리를 설치해야한다

 

https://code.google.com/archive/p/json-simple/downloads

 

> json-simple-1.1.1.jar 다운로드

> WEB-INF/lib에 다운받은 파일 붙여넣기

 

 

예시

package ch16;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

/**
 * Servlet implementation class JsonServlet1
 */
@WebServlet("/ch16/json")
public class JsonServlet1 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)	throws ServletException, IOException {
		doHandle(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)	throws ServletException, IOException {
		doHandle(request, response);
	}

	private void doHandle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=utf-8");
		String jsonInfo = request.getParameter("jsonInfo");
		try {
			JSONParser jsonParser = new JSONParser();
			JSONObject jsonObject = (JSONObject) jsonParser.parse(jsonInfo);
			System.out.println("회원정보");
			System.out.println(jsonObject.get("name"));
			System.out.println(jsonObject.get("age"));
			System.out.println(jsonObject.get("gender"));
			System.out.println(jsonObject.get("nickname"));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

1 문자열로 전송된 json 데이터를 파라미터 값으로 확인

String jsonInfo = request.getParameter("jsonInfo"); 

 

2 Jsonparser json 데이터의 처리

JSONObject jsonObject = (JSONObject) jsonParser.parse(jsonInfo);

 

3 해당 name값으로 얻은 것을 기준으로 value 값 출력

jsonObject.get("name")

728x90

'개발' 카테고리의 다른 글

[Oracle] 시퀀스  (0) 2020.11.08
이클립스 : 톰캣에 프로젝트 추가가 불가능 할 때  (0) 2020.11.08
제이쿼리 선택자  (0) 2020.08.08
JSTL 표준 태그 라이브러리  (0) 2020.08.01
표현 언어의 empty 연산자  (0) 2020.07.04