HttpServletRequest에서 JSON POST 데이터 액세스
JSON 형식의 데이터를 서블릿에 HTTP POST하는 경우 관련된 다양한 데이터 인코딩을 이해해야 합니다. . 기본적으로 서블릿은 request.getParameter()를 사용하여 매개변수를 검색할 수 있습니다. 그러나 JSON 데이터의 경우 "application/x-www-form-urlencoded"라는 표준 인코딩 체계가 사용되지 않습니다.
JSON POST 데이터를 검색하려면 원시 데이터 스트림을 처리하는 사용자 지정 디코더를 사용해야 합니다. request.getReader()에서. 다음은 org.json 패키지를 사용하는 예입니다.
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StringBuffer jb = new StringBuffer(); String line = null; try { BufferedReader reader = request.getReader(); 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"); } // Work with the data using methods like... // int someInt = jsonObject.getInt("intParamName"); // String someString = jsonObject.getString("stringParamName"); // JSONObject nestedObj = jsonObject.getJSONObject("nestedObjName"); // JSONArray arr = jsonObject.getJSONArray("arrayParamName"); // etc... }
이 코드는 요청에서 JSON 데이터 스트림을 읽고 org.json 패키지를 사용하여 구문 분석한 후 결과를 JSONObject에 저장합니다. 그런 다음 jsonObject.getInt(), jsonObject.getString() 등과 같은 메서드를 사용하여 JSON 매개 변수에 액세스할 수 있습니다.
이 접근 방식은 JSON 데이터에만 국한되지 않습니다. 동일한 기술을 사용하여 키-값 쌍으로 인코딩되지 않은 모든 유형의 사용자 정의 POST 데이터를 처리할 수 있습니다.
위 내용은 HttpServletRequest에서 JSON POST 데이터에 어떻게 액세스합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!