HttpServletRequest에서 JSON POST 데이터에 액세스
본문에 JSON 데이터가 포함된 HTTP POST 요청을 수행할 때 요청 데이터를 검색하는 것은 전통적인 getParameter 메소드가 사용되는 경우 문제가 발생합니다. 이는 getParameter가 "application/x-www-form-urlencoded" 형식으로 인코딩된 키-값 쌍에서만 작동하기 때문입니다.
그러나 JSON 데이터 스트림의 경우 사용자 정의 접근 방식이 필요합니다.
JSON 데이터용 사용자 정의 디코더
JSON POST 데이터에 액세스하려면 BufferedReader를 활용해야 합니다. 원시 데이터 스트림을 처리하려면:
BufferedReader reader = request.getReader();
org.json 패키지를 사용하는 예
다음은 인기 있는 org.json 라이브러리를 사용하여 JSON POST를 디코딩하는 예입니다. data:
@Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StringBuffer jb = new StringBuffer(); String line = null; try { while ((line = reader.readLine()) != null) jb.append(line); } catch (Exception e) { /*report an error*/ } try { JSONObject jsonObject = HTTP.toJSONObject(jb.toString()); } catch (JSONException e) { // crash and burn throw new IOException("Error parsing JSON request string"); } }
이 코드는 JSON 데이터를 읽고 추가 처리를 위해 JSONObject로 변환합니다. 그런 다음 getInt, getString 및 getJSONArray와 같은 메소드를 사용하여 필요한 특정 데이터를 추출할 수 있습니다.
위 내용은 HttpServletRequest를 사용하여 서블릿의 JSON POST 데이터에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!