Apakah ada cara di Java / J2ME untuk mengonversi string, seperti:
{name:"MyNode", width:200, height:100}
ke representasi Objek internal yang sama, dalam satu baris kode?
Karena metode saat ini terlalu membosankan:
Object n = create("new");
setString(p, "name", "MyNode");
setInteger(p, "width", 200);
setInteger(p, "height", 100);
Mungkin perpustakaan JSON?
java
json
java-me
serialization
Kilat
sumber
sumber
{"name":"MyNode", "width":200, "height":100}
Jawaban:
Saya menggunakan beberapa di antaranya dan favorit saya adalah,
http://code.google.com/p/json-simple/
Perpustakaannya sangat kecil sehingga cocok untuk J2ME.
Anda dapat mengurai JSON menjadi objek Java dalam satu baris seperti ini,
sumber
Opsi paling sederhana adalah Jackson :
Ada pustaka lain yang serupa yang mudah digunakan (Gson sudah disebutkan); tetapi beberapa pilihan lebih melelahkan, seperti pustaka org.json asli, yang mengharuskan Anda membuat "JSONObject" perantara meskipun Anda tidak membutuhkannya.
sumber
Object obj = new ObjectMapper().readValue("[1, 2, 3]", Object.class);
GSON adalah pilihan yang baik untuk mengonversi objek java ke objek json dan sebaliknya.
Ini adalah alat yang disediakan oleh google.
untuk mengubah objek json ke java gunakan:
fromJson(jsonObject,javaclassname.class)
untuk mengubah objek java ke objek json gunakan:
toJson(javaObject)
dan sisanya akan dilakukan secara otomatis
Untuk informasi lebih lanjut dan untuk mengunduh
sumber
Anda dapat melakukannya dengan mudah dengan Google GSON.
Katakanlah Anda memiliki kelas yang disebut Pengguna dengan bidang pengguna, lebar, dan tinggi dan Anda ingin mengonversi string json berikut ke objek Pengguna.
{"name":"MyNode", "width":200, "height":100}
Anda dapat dengan mudah melakukannya, tanpa harus melakukan cast (mengingat komentar nimcap;)), dengan kode berikut:
Di mana jsonString adalah String JSON di atas.
Untuk informasi lebih lanjut, harap lihat https://code.google.com/p/google-gson/
sumber
Anda memiliki banyak parser JSON untuk Java :
JSONObject.java
JSONObject adalah kumpulan pasangan nama / nilai yang tidak berurutan. Bentuk eksternalnya adalah string yang dibungkus dengan tanda kurung kurawal dengan titik dua di antara nama dan nilai, dan koma di antara nilai dan nama. Bentuk internal adalah objek yang memiliki metode get () dan opt () untuk mengakses nilai berdasarkan nama, dan metode put () untuk menambahkan atau mengganti nilai dengan nama. Nilainya dapat berupa salah satu dari jenis berikut: Boolean, JSONArray, JSONObject, Number, dan String, atau objek JSONObject.NULL.
JSONArray.java
JSONArray adalah urutan nilai yang diurutkan. Bentuk eksternalnya adalah string yang dibungkus dalam tanda kurung siku dengan koma di antara nilainya. Bentuk internal adalah objek yang memiliki metode get () dan opt () untuk mengakses nilai dengan indeks, dan metode put () untuk menambahkan atau mengganti nilai. Nilainya dapat berupa salah satu dari jenis berikut: Boolean, JSONArray, JSONObject, Number, dan String, atau objek JSONObject.NULL.
JSONStringer.java
JSONStringer adalah alat untuk memproduksi teks JSON dengan cepat.
JSONWriter.java
JSONWriter adalah alat untuk menulis teks JSON dengan cepat ke aliran.
JSONTokener.java
JSONTokener mengambil string sumber dan mengekstrak karakter dan token darinya. Ini digunakan oleh konstruktor JSONObject dan JSONArray untuk mengurai string sumber JSON.
JSONException.java
muncul ketika kesalahan sintaks atau prosedural terdeteksi.
JSONString.java
JSONString adalah antarmuka yang memungkinkan kelas untuk mengimplementasikan serialisasi JSON mereka.
sumber
java
kelas sederhana .Situs resmi JSON adalah tempat yang harus Anda lihat. Ini menyediakan berbagai pustaka yang dapat digunakan dengan Java, saya pribadi menggunakan yang ini, JSON-lib yang merupakan implementasi pekerjaan di situs, sehingga memiliki kelas yang sama - metode dll di halaman ini .
Jika Anda mengklik tautan html di sana, Anda dapat menemukan apa pun yang Anda inginkan.
Pendeknya:
untuk membuat objek json dan array json, kodenya adalah:
o1, o2, dapat berupa tipe primitif (panjang, int, boolean), String atau Array.
Proses kebalikannya cukup sederhana, maksud saya mengubah string menjadi objek / array json.
Agar dapat diurai dengan benar, Anda hanya perlu mengetahui apakah Anda sedang mengurai array atau objek.
sumber
Gunakan perpustakaan Google GSON untuk ini
http://iandjava.blogspot.in/2014/01/java-object-to-json-and-json-to-java.html
sumber
Seperti banyak yang sudah dinyatakan, Cara yang cukup sederhana untuk melakukan ini menggunakan JSON. Sederhana seperti di bawah ini
Dan kemudian gunakan jsonObj untuk menangani Objek JSON. misalnya jsonObj.get ("name");
Sesuai tautan di bawah ini, JSON.simple menunjukkan efisiensi konstan untuk file JSON kecil dan besar
http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/
sumber
JSON IO sejauh ini adalah cara termudah untuk mengonversi string JSON atau aliran input JSON ke Objek Java
String ke Objek Java
Object obj = JsonReader.jsonToJava("[\"Hello, World\"]");
https://code.google.com/p/json-io/
sumber
Ini adalah pertanyaan lama dan json-simple ( https://code.google.com/p/json-simple/ ) bisa menjadi solusi yang baik pada saat itu, tetapi mohon pertimbangkan bahwa proyek tersebut tampaknya tidak aktif untuk sementara waktu!
Saya menyarankan Gson yang sekarang dihosting di: https://github.com/google/gson
Jika kinerja adalah masalah Anda, Anda dapat melihat beberapa tolok ukur http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/ yang dibandingkan.
sumber
Selain www.json.org Anda juga dapat mengimplementasikan parser Anda sendiri menggunakan javacc dan mencocokkan tata bahasa / skema pribadi Anda. Lihat catatan ini di blog saya: http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html
sumber
Saya telah menulis perpustakaan yang menggunakan json.org untuk mengurai JSON, tetapi itu sebenarnya akan membuat proxy antarmuka untuk Anda. Kode / JAR ada di code.google.com.
http://fixjures.googlecode.com/
Saya tidak tahu apakah ini berfungsi di J2ME. Karena menggunakan Java Reflection untuk membuat proxy, saya pikir itu tidak akan berhasil. Selain itu, saat ini sangat bergantung pada Koleksi Google yang ingin saya hapus dan mungkin terlalu berat untuk kebutuhan Anda, tetapi ini memungkinkan Anda untuk berinteraksi dengan data JSON seperti yang Anda cari:
sumber
Buat saja objek Json di java dengan Json String berikut. Dalam kasus Anda
jika di atas adalah string Json Anda, buat saja Objek Json dengannya.
sumber
Jackson untuk file besar, GSON untuk file kecil, dan JSON. Sederhana untuk menangani keduanya.
sumber