본문 바로가기
JSP/이론

JSONObject //

by SEOKIHOUSE 2023. 6. 21.

자바에서 넘길때 못넘어가서 JSON으로 바꾸고 넘겨보자 (배열..등등)

자바영역에서 json데이터를 만들어보자

  • JSONObject
  1. JSON 객체 생성: JSONObject 클래스를 사용하여 JSON 객체를 생성할 수 있습니다. 생성된 객체는 키-값 쌍으로 이루어진 JSON 데이터를 저장하고 관리할 수 있습니다.
  2. JSON 데이터 접근: JSONObject는 JSON 객체 내의 데이터에 접근하는 다양한 메서드를 제공합니다. get() 메서드를 사용하여 특정 키에 해당하는 값을 가져올 수 있고, put() 메서드를 사용하여 값을 추가하거나 수정할 수 있습니다.

 

 

콘솔에 있는 내용 out.print에 넣어주고

실행

 --이전글과 내용이 같다


근데 위에처럼 하면 이스케이프 \ 써줘야하고 복잡해서 아예 자바객체를 만들어서 넘기자

  • JSONObject 제이슨형태의 객체로 만들어준다
  1.  JSONObject는 UserBean 객체의 속성과 값을 분석하여 JSON 형식으로 변환합니다. 예를 들어, UserBean의 속성 "이름"이 JSON 객체의 키, 해당 속성의 값이 JSON 객체의 값으로 매핑됩니다.
  2. JSONObject는 기본적으로 toString() 메서드를 오버라이딩하여 JSON 형식의 문자열로 변환됩니다. 따라서 JSON 형식으로 변환된 user01 객체가 출력됩니다.

결과적으로, 아래의 코드는 UserBean 객체의 정보를 JSON 형식으로 표현하고 출력하는 예시입니다. JSON 형식의 문자열로 표현된 객체는 다른 시스템과 데이터를 주고받거나 저장하는 데 사용될 수 있습니다.

package test;

import org.json.JSONObject;

import beans.UserBean;

public class JSONTest_02 {

	public static void main(String[] args) {
		JSONObject jobj = new JSONObject();
			
		//put으로 데이터 넣는다
		jobj.put("name", "짱구");
		jobj.put("age", 7);
		System.out.println(jobj);
		System.out.println(jobj.toString());
		System.out.println("-----------------------");
		
		UserBean ub = new UserBean("흰둥이",3);
		JSONObject user01 = new JSONObject(ub);
		System.out.println(user01);
		System.out.println(user01.toString());
	}

}
package beans;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserBean {
	private String name;

	private int age;
}

  • 이걸 활용해서 객체로 넘겨서 이름 나이 출력해보자

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

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.JSONObject;

import beans.UserBean;

@WebServlet("/feedbackJson")
public class json_02 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setCharacterEncoding("utf-8");
		//response.setContentType("text/html;charset=utf-8");
		
		PrintWriter out = response.getWriter();
		UserBean ub = new UserBean("짱구객체",55);
		JSONObject user02 = new JSONObject(ub);
		out.print(user02);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
	<script>
		window.onload = function() {
			const btns = document.querySelector("#btn");
			btn.addEventListener("click", f);
			
			function f () {
				const xhttp = new XMLHttpRequest();
				xhttp.onload = function() {
					let text = JSON.parse(this.responseText);
					document.getElementById('demo').innerHTML = "이름:"+text.name + "<br>나이:"+text.age;
				}
				xhttp.open("GET", "feedbackJson", true);
				xhttp.send();
			
			}
		}
	</script>
</head>
<body>
	<button id="btn">버튼</button>
	<div id="demo"></div>
</body>
</html>
package beans;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserBean {
	private String name;

	private int age;
}