HttpServletRequest 수신 및 해석 JSON 데이터 가 져 오기
예전 처럼 저희 가 Controller 에서 json 데이터 변환 을 처리 할 때 @ RequestBody 주석 만 표시 하면 됩 니 다.
문제 가 있 으 면 해결 해 야 합 니 다. debug 를 열 어 request 의 필드 내용 을 찾 아 보 았 지만 제 가 필요 로 하 는 JSon 데 이 터 를 발견 하지 못 했 습 니 다. 한때 까다 로 웠 기 때문에 결국 구 글 을 대상 으로 프로 그래 밍 을 해 야 했 습 니 다.
다음은 도구 류 입 니 다.
public class GetRequestJsonUtils {
public static JSONObject getRequestJsonObject(HttpServletRequest request) throws IOException {
String json = getRequestJsonString(request);
return JSONObject.parseObject(json);
}
/***
* request json
*
* @param request
* @return : byte[]
* @throws IOException
*/
public static String getRequestJsonString(HttpServletRequest request)
throws IOException {
String submitMehtod = request.getMethod();
// GET
if (submitMehtod.equals("GET")) {
return new String(request.getQueryString().getBytes("iso-8859-1"),"utf-8").replaceAll("%22", "\"");
// POST
} else {
return getRequestPostStr(request);
}
}
/**
* : post byte[]
*
* :
*
* @param request
* @return
* @throws IOException
*/
public static byte[] getRequestPostBytes(HttpServletRequest request)
throws IOException {
int contentLength = request.getContentLength();
if(contentLength<0){
return null;
}
byte buffer[] = new byte[contentLength];
for (int i = 0; i < contentLength;) {
int readlen = request.getInputStream().read(buffer, i,
contentLength - i);
if (readlen == -1) {
break;
}
i += readlen;
}
return buffer;
}
/**
* 설명: post 요청 내용 가 져 오기
*
* :
*
* @param request
* @return
* @throws IOException
*/
public static String getRequestPostStr(HttpServletRequest request)
throws IOException {
byte buffer[] = getRequestPostBytes(request);
String charEncoding = request.getCharacterEncoding();
if (charEncoding == null) {
charEncoding = "UTF-8";
}
return new String(buffer, charEncoding);
}
}
마지막 으로 우 리 는 request 를 GetRequestJSonUtils 에 전송 하여 JSonobject 대상 으로 돌아 가 야 합 니 다.JSONObject json = GetRequestJsonUtils.getRequestJsonObject(request);
String username = json.getString(usernameParameter);
String password = json.getString(passwordParameter);
원본 주소:https://blog.csdn.net/tengdazhang770960436/article/details/50149061
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.