Bagaimana Anda mengembalikan objek JSON dari servlet Java.
Sebelumnya ketika melakukan AJAX dengan servlet saya telah mengembalikan sebuah string. Apakah ada tipe objek JSON yang perlu digunakan, atau Anda hanya mengembalikan sebuah String yang terlihat seperti objek JSON misalnya
String objectToReturn = "{ key1: 'value1', key2: 'value2' }";
{ key1: value1, key2: value2 }
?Jawaban:
Saya melakukan persis apa yang Anda sarankan (return a
String
).Anda mungkin mempertimbangkan untuk menetapkan tipe MIME untuk menunjukkan Anda kembali JSON, (menurut posting stackoverflow ini adalah "application / json").
sumber
Tulis objek JSON ke aliran output objek respons.
Anda juga harus mengatur jenis konten sebagai berikut, yang akan menentukan apa yang Anda kembalikan:
sumber
String jsonStr = "{\"my_key\": \"my_value\"}";
Konversi objek JSON terlebih dahulu menjadi
String
. Kemudian cukup tuliskan ke penulis respons bersama dengan tipe kontenapplication/json
dan pengkodean karakter UTF-8.Berikut ini sebuah contoh dengan asumsi Anda menggunakan Google Gson untuk mengonversi objek Java ke string JSON:
Itu saja.
Lihat juga:
sumber
sumber
Cukup tulis string ke aliran output. Anda dapat mengatur tipe MIME ke
text/javascript
( edit :application/json
tampaknya resmi) jika Anda merasa membantu. (Ada kemungkinan kecil tapi bukan nol bahwa itu akan menjaga sesuatu dari mengacaukannya suatu hari nanti, dan itu adalah praktik yang baik.)sumber
Gson sangat berguna untuk ini. bahkan lebih mudah. ini contoh saya:
}
Harus mengatakan orang jika vars Anda kosong ketika menggunakan gson itu tidak akan membangun json untuk Anda
sumber
Saya menggunakan Jackson untuk mengonversi Java Object ke string JSON dan mengirim sebagai berikut.
sumber
Mungkin ada objek JSON untuk kenyamanan pengkodean Java. Tetapi pada akhirnya struktur data akan diserialisasi ke string. Mengatur tipe MIME yang tepat akan menyenangkan.
Saya sarankan JSON Java dari json.org .
sumber
String
- output harus langsung menujuOutputStream
. Atau, jika bentuk peralihan diperlukan karena alasan tertentu, dapat digunakanbyte[]
. Sebagian besar pustaka JSON Java dapat menulis langsung keOutputStream
.Bergantung pada versi Java (atau JDK, SDK, JRE ... saya tidak tahu, saya baru di ekosistem Java),
JsonObject
ini abstrak. Jadi, ini adalah implementasi baru:sumber
response.setContentType ("text / json");
// buat string JSON, saya sarankan menggunakan beberapa framework.
String your_string;
out.write (your_string.getBytes ("UTF-8"));
sumber
Tutup jawaban BalusC dalam 4 baris sederhana menggunakan Google Gson lib. Tambahkan baris ini ke metode servlet:
Semoga berhasil!
sumber
Dengan Menggunakan Gson Anda dapat mengirim respons json, lihat kode di bawah ini
Anda dapat melihat kode ini
membantu dari respons json dari servlet di java
sumber
Anda dapat menggunakan seperti di bawah ini.
Jika Anda ingin menggunakan json array:
Buat kelas bernama Model seperti di bawah ini
Dalam sevlet getMethod Anda dapat menggunakan seperti di bawah ini
Output :
Saya ingin json Object hanya menggunakan seperti:
Output fungsi di atas :
Sumber lengkap diberikan kepada GitHub: https://github.com/enamul95/ServeletJson.git
sumber