HttpServletRequest에서 JSON 오브젝트 리터럴 취득
서블릿에 게시된 오브젝트 리터럴을 추출해야 하는 코드를 쓰고 있습니다.HttpServletRequest 객체에 대한 API를 연구했지만 JSON 객체가 웹 페이지의 폼 요소에서 게시되지 않기 때문에 요청에서 JSON 객체를 꺼내는 방법은 명확하지 않습니다.
어떤 통찰이라도 감사합니다.
감사해요.
당신 이것을 찾고 있나요?
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
StringBuilder sb = new StringBuilder();
BufferedReader reader = request.getReader();
try {
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append('\n');
}
} finally {
reader.close();
}
System.out.println(sb.toString());
}
이것은 요청 데이터를 가져오는 간단한 방법입니다.HttpServletRequest
Java 8 Stream API 사용:
String requestData = request.getReader().lines().collect(Collectors.joining());
잭슨 JSON 프로세서를 활용하다
ObjectMapper mapper = new ObjectMapper();
Book book = mapper.readValue(request.getInputStream(),Book.class);
가장 쉬운 방법은 Reader 객체에서 콩을 채우는 것입니다.이는 한 번의 호출로 실행할 수 있습니다.
BufferedReader reader = request.getReader();
Gson gson = new Gson();
MyBean myBean = gson.fromJson(reader, MyBean.class);
다른 방법이 있습니다.org.apache.commons.io.IOUtils
요청에서 문자열을 추출하다
String jsonString = IOUtils.toString(request.getInputStream());
그럼 네가 원하는 건 뭐든 할 수 있어JSON
또는 다른 오브젝트Gson
,기타.
JSONObject json = new JSONObject(jsonString);
MyObject myObject = new Gson().fromJson(jsonString, MyObject.class);
요청 본문에서 데이터를 가져오려는 경우 위의 코드가 작동합니다.하지만 너도 나와 같은 문제를 겪고 있는 것 같아.
본문의 데이터가 JSON 형식이고 Java 개체로 사용하려면 직접 해석하거나 google-gson과 같은 라이브러리를 사용하여 처리해야 합니다.프로젝트 웹사이트에서 문서와 예시를 보고 사용법을 알아야 합니다.그것은 상당히 쉬워요.
검색된 데이터를 요청 개체에서 json 개체로 변환하는 방법은 다음과 같습니다.
Gson gson = new Gson();
ABCClass c1 = gson.fromJson(data, ABCClass.class);
//ABC class is a class whose strcuture matches to the data variable retrieved
언급URL : https://stackoverflow.com/questions/1548782/retrieving-json-object-literal-from-httpservletrequest
'programing' 카테고리의 다른 글
ReactJS '개발 모드'를 켜거나 끄는 방법은 무엇입니까? (0) | 2023.03.11 |
---|---|
Woocommerce에서 선택한 기본 결제 게이트웨이 변경 (0) | 2023.03.11 |
개체가 React 하위 개체로 유효하지 않습니다(찾은 개체: [object Promise]). (0) | 2023.03.11 |
ng-init으로 설정된 변수가 AngularJS의 $scope에서 정의되지 않은 이유는 무엇입니까? (0) | 2023.03.11 |
jQuery.ajax() 사용 시 오류는 어떻게 처리합니까? (0) | 2023.03.11 |