Saya memiliki server yang mengembalikan pesan JSON yang sangat besar dan aplikasi klien saya hanya bergantung pada bagian dari respons ini. Aplikasi klien perlu memeriksa apakah properti "xyz" ada di pesan JSON dan tergantung pada hasil menjalankan usecase tertentu.
Untuk persyaratan ini, mengubah seluruh pesan JSON menjadi objek terdengar agak mahal bagi saya dan karenanya pertanyaan ini.
Apakah ada bahasa query JSON standar seperti yang kami miliki untuk XML? Jika ya apa yang terbaik ketahui implementasi bahasa query ini di java.
FYI: Mengubah atau menambahkan layanan baru di sisi server bukanlah suatu pilihan.
JSON.getString(json_string, 'foo.22.bar')
(untuk, properti "bar" dalam elemen daftar 22 di properti "foo", yang berisi String)JSON baz = new JSON(json_string); baz.getString('foo.22.bar');
misalnyaJawaban:
Mengapa tidak menggunakan javascript saja? (JSON adalah Notasi Objek Javascript setelah semua). Maka Anda tidak perlu menguraikan atau memanipulasi JSON.
EDIT Lihatlah di http://json.org/java
Bukan itu. Deserializing objek adalah murah (tes bangku sendiri). Berbicara dengan API eksternal akan menjadi urutan besarnya lebih mahal. Anda dapat secara langsung memanipulasi string yang mungkin sedikit lebih cepat tetapi Anda akan mengambil risiko bug, mengurangi ekstensibilitas dan mengurangi keterbacaan. Biaya tinggi.
sumber
"Ukur, jangan menebak". Ya serialisasi objek dan deserialisation saya menjadi mahal dalam teori, tetapi apa tujuan kinerja aplikasi Anda? Jika serialisasi objek (de) tidak mendorong kinerja Anda ke tingkat yang tidak dapat diterima, maka jangan khawatir tentang hal itu :-). Kuncinya tentu saja adalah untuk mengetahui apa batas-batas kinerja seharusnya (mis. Waktu respons kepada pengguna dalam 2 detik) dan untuk mengukur setiap bagian dari siklus permintaan / respons.
sumber