Backend/JAVA

[JAVA] jsp에서 보낸 json 데이터 java controller에서 변환하기

couque 2023. 10. 24. 22:33
반응형

화면에서 입력받거나 가지고 있던 데이터를 서버로 보내서 처리하는 방법은 많지만 그 중에

이번에 사용하는 방법은 json 형태의 데이터로 전송하는 방법이다.

jsp 화면단에서 json 데이터를 서버로 보내서 자바에서 변환하여 사용하는 방법이다.


# jsp 에서 Object 데이터 생성하기

var data = {};

data.name = "Hong gildong";
data.phone = "010-1234-5678";
data.address = "Seoul";

console.log(data);  // {name: "Hong gildong", phone: "010-1234-5678", address: "Seoul"}

 

# ajax를 사용해 데이터를 보낼 때 아래와 같이 json 형태로 변환하여 보낸다.

JSON.stringify(data);

console.log(JSON.stringify(data));
// "{\"name\":\"Hong gildong\",\"phone\":\"010-1234-5678\",\"address\":\"Seoul\"}"

 

# 화면에서 보내온 데이터를 서버에서 (java) 받아서 변환하기

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.Element;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

String requestData = request.getParameter("requestData").replaceAll(""", "\"");

JsonParser jsonParser = new JsonParser();
JsonObject jsonObject = (JsonObject) jsonParser.parse(requestData);

JsonElement el = jsonObject.get("name");
String strName = el.getAsString();

System.out.println(strName);  // Hong gildong

다른 데이터들도 위와 같은 형태로 가져오면 된다.

 

# 데이터가 리스트인 경우 아래와 같이 변환하여 사용할 수 있다.

JsonArray jsonArray = (JsonArray) jsonObject.get("listData");

ArrayList<String> list = new Gson().fromJson(jsonArray, ArrayList.class);

System.out.println(list);

 

 

반응형