개발새발

json형식으로 list 데이터 java에 넘기기 본문

Programming/[Java]

json형식으로 list 데이터 java에 넘기기

재래김유진 2023. 10. 31. 16:32
728x90
반응형

프론트 단에서 리스트를 백 단으로 넘겨줘야 한다고 할 때 json형식으로 데이터를 넘겨줄 수 있다.

 

 

id가 save인 form 내에 hidden 처리된 id가 saveData인 input 태그를 만들어 준다.

<form name="save" id="save" method="post" th:action="@{/test/goodsProcess.lts}">
	<input type="hidden" name="saveData" id="saveData" value=""/>
</form>

 


 

 

testData라는 리스트 데이터가 있다고 가정하고,

testData의 개수만큼 for문을 돌면서 saveDataParam 변수에 각각의 데이터를 담아 saveDataArr 배열변수에 push 해준다.

 

push 해서 배열로 만든 데이터를 JSON.stringify 메서드를 사용해 JSON 표기법으로 변환 시켜준다.

위에서 saveData를 java로 넘겨주기 위해 위에서 만들었던 id가 saveData인 input 태그에 value 값으로 넣어준다.

JSON.stringify() 메서드는 JavaScript 값이나 객체를 JSON 문자열로 변환합니다.
var saveDataArr = new Array();

for(var i=0; i<testData.length; i++){
	var saveDataParam = {
                    id : testData[i].id
                    , goodsName : testData[i].goodsName
                    , goodsPrice : testData[i].goodsPrice
                    }
	saveDataArr.push(saveDataParam)
}

$("#saveData").val(JSON.stringify(saveDataArr));

 


 

그렇다면 java에서는 saveData라는 VO 객체에 아래와 같은 형식으로 데이터가 들어가게 된다.

더보기

saveData = "{&quot;id&quot;:&quot;1234&quot;,&quot;goodsName&quot;:&quot;상품명&quot;,&quot;goodsPrice&quot;:50000}"

json 형식의 데이터는 Gson 라이브러리를 통해 객체로 꺼낼 수 있다.

 

Gson은 JSON의 자바 오브젝트의 직렬화, 역직렬화를 해주는 오픈 소스 자바 라이브러리이다.

(JSON Object -> JAVA Object)

or

( JAVA Object -> JSON Object)

public DtoAssembler goodsProcess( GoodsVO.request reqVO ) throws Exception {

	List<GoodsVO.goodsInfo> goodsVO = new Gson().fromJson(reqVO.getSaveData(), new TypeToken<ArrayList<GoodsVO.goodsInfo>>(){}.getType());

	return super.processSuccess(Constants.RESULT, goodsVO, errorCode, resultAllMsg);
}

 

 


 

 

++ java로 넘어온 JSON Object에 데이터를 추가해주고 싶다!!!

라고 한다면 아래와 같이 JSON Obeject를 사용하여 json 객체를 추가해 줄 수 있다.

JSONObject jsonObject = new JSONObject(reqVO.getSaveData());
jsonObject.put("goodsType", "food");

reqVO.setSaveData(jsonObject.toString());

 

728x90
반응형
Comments