JSP/이론
JSON 클라->서블렛 배열보내고 // 서블렛 ->클라 배열보내고
by SEOKIHOUSE
2023. 6. 21.
JSONObject jsonObject = jarray.getJSONObject(i);: JSON 배열에서 인덱스 i에 해당하는 JSON 객체를 추출합니다.
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);
}
}