Rumah >Java >javaTutorial >Bagaimanakah Saya Mengakses Data JSON POST dalam HttpServletRequest?

Bagaimanakah Saya Mengakses Data JSON POST dalam HttpServletRequest?

Susan Sarandon
Susan Sarandonasal
2024-12-25 20:44:10823semak imbas

How Do I Access JSON POST Data in an HttpServletRequest?

Mengakses JSON POST Data dalam HttpServletRequest

Apabila HTTP POSTing data dalam format JSON ke servlet, adalah perlu untuk memahami pengekodan data berbeza yang terlibat . Secara lalai, servlet boleh mendapatkan semula parameter menggunakan request.getParameter(). Walau bagaimanapun, untuk data JSON, skema pengekodan standard "application/x-www-form-urlencoded" tidak digunakan.

Untuk mendapatkan semula data JSON POST, anda perlu menggunakan penyahkod tersuai yang memproses aliran data mentah daripada request.getReader(). Berikut ialah contoh menggunakan pakej 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...
}

Kod ini membaca aliran data JSON daripada permintaan, menghuraikannya menggunakan pakej org.json dan menyimpan hasilnya dalam JSONObject. Anda kemudiannya boleh mengakses parameter JSON menggunakan kaedah seperti jsonObject.getInt(), jsonObject.getString(), dan sebagainya.

Perhatikan bahawa pendekatan ini tidak terhad kepada data JSON. Anda boleh menggunakan teknik yang sama untuk memproses sebarang jenis data POST tersuai yang tidak dikodkan sebagai pasangan nilai kunci.

Atas ialah kandungan terperinci Bagaimanakah Saya Mengakses Data JSON POST dalam HttpServletRequest?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn