Saya sedang memikirkan sesuatu seperti:
String json = new JsonBuilder()
.add("key1", "value1")
.add("key2", "value2")
.add("key3", new JsonBuilder()
.add("innerKey1", "value3"))
.toJson();
Library Java JSON manakah yang terbaik untuk jenis bangunan yang lancar?
Pembaruan : Saya membungkus GSON dan mendapatkan hasil yang hampir diinginkan ... dengan satu halangan .
Jawaban:
Saya menggunakan pustaka org.json dan merasa pustaka itu bagus dan ramah.
Contoh:
KELUARAN:
sumber
Lihat spesifikasi Java EE 7 Json . Ini cara yang benar:
sumber
javax.json
Java 7 dan yang lebih baru.javax.json
paket adalah yang iniSaya baru-baru ini membuat perpustakaan untuk membuat objek Gson dengan lancar:
http://jglue.org/fluent-json/
Ini bekerja seperti ini:
Dan melalui keajaiban generik, ini menghasilkan kesalahan kompilasi jika Anda mencoba menambahkan elemen ke array dengan kunci properti atau elemen ke objek tanpa nama properti:
Terakhir, ada dukungan pemetaan di API yang memungkinkan Anda memetakan objek domain Anda ke JSON. Tujuannya adalah saat Java8 dirilis, Anda akan dapat melakukan sesuatu seperti ini:
sumber
Jika Anda menggunakan Jackson untuk melakukan banyak
JsonNode
pembangunan dalam kode, Anda mungkin tertarik pada rangkaian utilitas berikut. Manfaat menggunakannya adalah bahwa mereka mendukung gaya perangkaian yang lebih alami yang menunjukkan struktur JSON yang sedang dibangun dengan lebih baik.Berikut ini contoh penggunaan:
Yang setara dengan JSON berikut:
Berikut kelasnya:
Perhatikan bahwa implementasinya menggunakan Lombok , tetapi Anda dapat dengan mudah mendesainnya untuk mengisi boilerplate Java.
sumber
Jika menurut Anda solusi di atas elegan, silakan coba lib JsonBuilder saya . Itu dibuat untuk memungkinkan satu cara membangun struktur json untuk banyak jenis perpustakaan Json. Implementasi saat ini termasuk Gson, Jackson dan MongoDB. Untuk mis. Jackson baru saja bertukar:
Saya akan dengan senang hati menambahkan orang lain berdasarkan permintaan, ini juga cukup mudah untuk diterapkan satu per satu.
sumber
Sepertinya Anda mungkin ingin mendapatkan json-lib:
http://json-lib.sourceforge.net/
Douglas Crockford adalah orang yang menemukan JSON; perpustakaan Java-nya ada di sini:
http://www.json.org/java/
Kedengarannya seperti orang-orang di json-lib mengambil tempat yang ditinggalkan Crockford. Keduanya sepenuhnya mendukung JSON, keduanya menggunakan (kompatibel, sejauh yang saya tahu) konstruksi JSONObject, JSONArray dan JSONFunction.
'Semoga itu bisa membantu ..
sumber
The implementasi referensi termasuk antarmuka fasih. Lihat JSONWriter dan subkelas JSONStringer yang mengimplementasikan toString
sumber
jauh lebih mudah daripada yang Anda pikirkan untuk menulis sendiri, cukup gunakan antarmuka
JsonElementInterface
dengan metodestring toJson()
, dan kelas abstrak yangAbstractJsonElement
mengimplementasikan antarmuka itu,maka yang harus Anda lakukan adalah memiliki kelas
JSONProperty
yang mengimplementasikan antarmuka, danJSONValue
(token apa pun),JSONArray
([...]), danJSONObject
({...}) yang memperluas kelas abstrakJSONObject
memiliki daftarJSONProperty
'sJSONArray
memiliki daftarAbstractJsonElement
' sfungsi add Anda di masing-masing harus mengambil daftar vararg jenis itu, dan kembali
this
sekarang jika Anda tidak menyukai sesuatu, Anda dapat mengubahnya
Manfaat dari inteface dan kelas abstrak adalah
JSONArray
tidak dapat menerima properti, tetapiJSONProperty
dapat menerima objek atau arraysumber