從HttpServletRequest 檢索JSON POST 資料
使用JSON 編碼資料執行HTTP POST 請求時,了解資料之間的差異編碼與標準HTML 表單提交的比較。在這種情況下,無法透過 HttpServletRequest.getParameter() 方法自動存取 POST 資料。
要檢索 JSON POST 數據,您需要使用可以處理從 HttpServletRequest 取得的原始資料流的自訂解碼器。 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 數據,將其解析為 JSONObject,並提供對目的。然後,您可以根據需要與 JSON 資料進行交互,提取所需的參數和值。
請注意,當使用JSON 編碼的POST 資料而不是傳統的「application/x-www-form」時,此方法是必要的-urlencoded」標準HTML 表單中使用的編碼。透過使用自定義解碼器,您可以在Servlet 應用程式中有效地檢索和處理JSON 資料。
以上是如何從 HttpServletRequest 檢索 JSON POST 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!