본문 바로가기
JSP/이론

JSON 클라->서블렛 배열보내고 // 서블렛 ->클라 배열보내고

by SEOKIHOUSE 2023. 6. 21.
  1. JSONObject jsonObject = jarray.getJSONObject(i);: JSON 배열에서 인덱스 i에 해당하는 JSON 객체를 추출합니다.
  2. String name = jsonObject.getString("name");과 int age = jsonObject.getInt("age");를 사용하여 JSON 객체에서 "name"과 "age" 필드의 값을 추출합니다. 이를 각각 name과 age 변수에 저장합니다.


<%@ 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("#btns");
			btns.addEventListener("click", f);
			
			let array = [{
				name: "흰둥이",
				age: 3
			},
			{
				name: "짱구",
				age: 7
			},
			{
				name: "짱아",
				age: 4
			}];
			let jstr = JSON.stringify(array);
			
			function f() {
				const xhttp = new XMLHttpRequest();
				xhttp.onload = function() {
					let jobj = JSON.parse(this.responseText);
					for(let i =0;i<jobj.length; i++) {
						document.querySelector("#divs").innerHTML += "이름:" + jobj[i].name +"<br>나이:" + jobj[i].age+"<br>";
					}
					//document.querySelector("#divs").innerHTML = "이름:" + jobj.name +"<br>나이:" + jobj.age;
				}
				xhttp.open("Post","Json_03practice",true);
				xhttp.setRequestHeader("Content-type", "application/json");
				xhttp.send(jstr);
			}
		}
	</script>
</head>
<body>
	<button id="btns">버튼동작</button>
	<div id="divs"></div>
</body>
</html>
package servlet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

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.JSONArray;
import org.json.JSONObject;

import beans.UserBean;

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

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

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		
		BufferedReader br = request.getReader();
		String s =br.readLine();
		JSONArray jarray = new JSONArray(s);
		
		ArrayList<UserBean> ar = new ArrayList<>();
		for (int i = 0; i < jarray.length(); i++) {
			JSONObject ss = new JSONObject(jarray);
			
		    JSONObject jsonObject = jarray.getJSONObject(i);
		    System.out.println(jsonObject);
		    //String name = (String) jsonObject.get("name");
		    String name = jsonObject.getString("name");
		    int age = jsonObject.getInt("age");
		    System.out.println(name+ "||"+age);
		    UserBean user = new UserBean(name, age);
		    ar.add(user);
		}
		
		JSONArray sendjarry = new JSONArray(ar);
		String sending = sendjarry.toString();
		response.setCharacterEncoding("utf-8");
		PrintWriter pw = response.getWriter();
		pw.print(sending);
		
//		JSONObject jobj = new JSONObject(s);
//		System.out.println(jobj);
//		System.out.println(jobj.get("name"));
//		System.out.println(jobj.get("age"));
		
//		String name = (String)jobj.get("name");
//		Integer age = (Integer)jobj.get("age");
//		System.out.println(name);
//		System.out.println(age);
		
//		UserBean ub = new UserBean(name, age);
//		
//		JSONObject jobj2 = new JSONObject(ub);
//		System.out.println(jobj2);
//		response.setCharacterEncoding("utf-8");
//		PrintWriter pw = response.getWriter();
//		pw.print(jobj2);
	}

}