본문 바로가기

JAVA/JAVA

[JAVA/SPRING/eGovFrame] JAVA에서 Request Body 의 처리 - String toJsonArray / String toJson / JsonArray format String

[JAVA/SPRING/eGovFrame] 

JAVA에서  Request Body 의 처리  

- String toJsonArray / String toJson 

/ JsonArray format String 



제목이 무언가 굉장히 길어져버렸습니다. 내용은 간단합니다. 

POST 방식으로 전달된 Request 는 Body 에 DATA 가 담겨져서 저장됩니다. 

그리고, 우리는 효율적은 JSON 형태로 BODY에 담아서 전달했을 경우, 

어떻게 데이터를 처리해야 하는지에 대한 포스팅입니다.



@RequestMapping(value ="/example.do")

@ResponseBody

public ModelAndView example(HttpServletRequest request, HttpServletResponse response,

HttpEntity<String> httpEntity , ModelMap Model) throws Exception{


}

위의 Spring 예제 소스를 통해 알아보도록 하겠습니다.



1. HttpServletRequest request 를 를 통하여, BODY 를 전달 받을 경우,

request.getReader().readLine();


을 통해서, Request 값을 확인할 수 있습니다.

하지만, 저는 이 방법을 사용하지 않고, HttpEntity를 통해서 Body 값을 가져오도록 합니다.







2. HttpEntity 를 통하여, BODY 를 전달 받을 경우,

String reqBody = httpEntity.getBody();

JSONArray mArray;

mArray = new JSONArray(reqBody);

JSONObject jsonObj;

for(int i = 0; i<mArray.length(); i++){

jsonObj = mArray.getJSONObject(i);

String bigo = "비고";

String comPort = jsonObj.getString("comPort");

String connType = jsonObj.getString("bangsic");


deviceVO.setBigo(bigo);

deviceVO.setComPort(comPort);

deviceVO.setConnType(connType);

}

간단하게 설명을 적자면, 

reqBody 에 String 형태의 JsonArray (httpEntity.getBody()에 담겨있는 DATA) 를 가져옵니다

다시, JSONArray 형태로 변환하기 위해서, reqBody를 JsonArray로 변환하여 줍니다.

이후, 담겨진 JSONArray를 JsonObject로 추출하여, VO에 담는 예제입니다.

String(JSONArray) --> String ---> JsonArray --> JsonObject