saya menggunakan json-sederhana dan saya perlu cukup mencetak data JSON (membuatnya lebih mudah dibaca manusia).
Saya belum dapat menemukan fungsi ini di dalam perpustakaan itu. Bagaimana ini biasanya dicapai?
java
json
pretty-print
json-simple
mabuzer
sumber
sumber
scriptEngine.eval("result = JSON.stringify(JSON.parse(jsonString), null, 2)");
GsonBuilder
, karena saya menggunakangson.toJson(object)
saya hanya harus mengubah instantiasi saya dariGson gson = new Gson();
keGson gson = new GsonBuilder().setPrettyPrinting().create();
dan kode saya terus bekerja tetapi cukup mencetak objek bukannya satu baris.Saya menggunakan metode bawaan org.json untuk mencetak data dengan cantik.
Urutan bidang dalam JSON adalah acak per definisi. Pesanan tertentu tunduk pada implementasi parser.
sumber
Sepertinya GSON mendukung ini, walaupun saya tidak tahu apakah Anda ingin beralih dari perpustakaan yang Anda gunakan.
Dari buku petunjuk:
sumber
Dengan Jackson (
com.fasterxml.jackson.databind
):Dari: Cara mengaktifkan hasil cetak JSON yang cantik (Jackson)
Saya tahu ini sudah ada dalam jawaban, tetapi saya ingin menulisnya secara terpisah di sini karena kemungkinan besar, Anda sudah memiliki Jackson sebagai ketergantungan dan semua yang Anda perlukan akan menjadi baris kode tambahan.
sumber
Jika Anda menggunakan Java API untuk implementasi JSON Processing (JSR-353) maka Anda dapat menentukan
JsonGenerator.PRETTY_PRINTING
properti ketika Anda membuat aJsonGeneratorFactory
.Contoh berikut ini awalnya diterbitkan di posting blog saya .
sumber
Situasi saya adalah proyek saya menggunakan parser JSON lawas (non-JSR) yang tidak mendukung pencetakan cantik. Namun, saya perlu membuat sampel JSON yang dicetak cantik; ini dimungkinkan tanpa harus menambahkan pustaka tambahan selama Anda menggunakan Java 7 dan di atasnya:
sumber
Pencetakan cantik dengan GSON dalam satu baris:
Selain inlining, ini setara dengan jawaban yang diterima .
sumber
Sebagian besar jawaban yang ada tergantung pada pustaka eksternal, atau memerlukan versi Java khusus. Berikut ini adalah kode sederhana untuk mencetak string JSON, hanya menggunakan Java API umum (tersedia di Java 7 untuk yang lebih tinggi; belum pernah mencoba versi yang lebih lama).
Ide dasarnya adalah untuk memadukan format berdasarkan karakter khusus di JSON. Misalnya, jika '{' atau '[' diamati, kode akan membuat baris baru dan meningkatkan level indentasi.
Penafian: Saya hanya menguji ini untuk beberapa kasus JSON sederhana (pasangan nilai kunci dasar, daftar, JSON bersarang) sehingga mungkin perlu beberapa pekerjaan untuk teks JSON yang lebih umum, seperti nilai string dengan kutipan di dalam, atau karakter khusus (\ n, \ t dll).
sumber
Dalam satu baris:
Json-io libray ( https://github.com/jdereg/json-io ) adalah perpustakaan kecil (75K) tanpa dependensi selain JDK.
Selain JSON yang cukup mencetak, Anda dapat membuat serial objek Java (seluruh grafik objek Java dengan siklus) ke JSON, serta membacanya di.
sumber
Sekarang ini dapat dicapai dengan perpustakaan JSONLib:
http://json-lib.sourceforge.net/apidocs/net/sf/json/JSONObject.html
Jika (dan hanya jika) Anda menggunakan
toString(int indentationFactor)
metode kelebihan beban dan bukantoString()
metode standar .Saya telah memverifikasi ini pada versi API berikut:
sumber
Mengikuti spesifikasi JSON-P 1.0 ( JSR-353 ) solusi yang lebih terkini untuk yang diberikan
JsonStructure
(JsonObject
atauJsonArray
) dapat terlihat seperti ini:sumber
Di JSONLib Anda dapat menggunakan ini:
Dari Javadoc :
sumber
Anda dapat menggunakan Gson seperti di bawah ini
Dari pos JSON cukup cetak menggunakan Gson
Atau, Anda dapat menggunakan Jackson seperti di bawah ini
Dari pos Pretty print JSON in Java (Jackson)
Semoga bantuan ini!
sumber
Menggunakan org json. Tautan referensi
Menggunakan Gson. Tautan referensi
Menggunakan Jackson. Tautan referensi
Menggunakan Genson. Tautan referensi .
sumber
Ini bekerja untuk saya, menggunakan Jackson:
sumber
mapper
berasal?Anda dapat menggunakan perpustakaan json kecil
sumber
Underscore-java memiliki metode statis
U.formatJson(json)
. Lima jenis format didukung: 2, 3, 4, tab dan kompak. Saya adalah pengelola proyek. Contoh langsungKeluaran:
sumber