Mengkonversi string JSON ke object di Java ME?

Apakah ada cara dalam Java/J2ME untuk mengkonversi string, seperti:

{name:"MyNode", width:200, height:100}

untuk internal Objek representasi yang sama, dalam satu baris kode?

Karena saat ini metode ini terlalu membosankan:

Object n = create("new");
setString(p, "name", "MyNode");
setInteger(p, "width", 200);
setInteger(p, "height", 100);

Mungkin JSON library?

Mengomentari pertanyaan (5)
Larutan

Saya menggunakan beberapa dari mereka dan favorit saya adalah,

http://code.google.com/p/json-simple/

Perpustakaan ini sangat kecil sehingga's sempurna untuk J2ME.

Anda dapat mem-parse JSON ke Jawa objek dalam satu baris seperti ini,

JSONObject json = (JSONObject)new JSONParser().parse("{\"name\":\"MyNode\", \"width\":200, \"height\":100}");
System.out.println("name=" + json.get("name"));
System.out.println("width=" + json.get("width"));
Komentar (3)

Pilihan yang paling sederhana adalah Jackson:

MyObject ob = new ObjectMapper().readValue(jsonString, MyObject.class);

Ada yang lain demikian pula sederhana untuk menggunakan perpustakaan (Gson sudah disebutkan); tapi beberapa pilihan yang lebih sulit, seperti asli org.json library, yang membutuhkan anda untuk membuat intermediate "JSONObject" bahkan jika anda tidak memiliki kebutuhan untuk mereka.

Komentar (5)

GSON adalah pilihan yang baik untuk mengkonversi objek java untuk json object dan sebaliknya.
Ini adalah alat yang disediakan oleh google.

untuk mengubah json untuk objek java menggunakan: fromJson(jsonObject,javaclassname.class)
untuk mengkonversi objek java untuk objek json menggunakan: toJson(javaObject)
dan sisanya akan dilakukan secara otomatis

Untuk lebih informasi dan untuk men-download

Komentar (1)

Anda dapat melakukan ini dengan mudah dengan Google GSON.

Let's mengatakan anda memiliki kelas yang disebut User dengan field user, lebar, dan tinggi dan anda ingin mengkonversi berikut json string ke objek Pengguna.

{"":"MyNode", "lebar":200, "tinggi":100}

Anda dapat dengan mudah melakukannya, tanpa harus cast (menjaga nimcap's komentar di pikiran ;) ), dengan kode berikut:

Gson gson = new Gson(); 
final User user = gson.fromJson(jsonString, User.class);

Di mana jsonString adalah di atas JSON String.

Untuk informasi lebih lanjut, silahkan lihat ke https://code.google.com/p/google-gson/

Komentar (1)

Anda memiliki banyak JSON parser untuk Java:

  • JSONObject.java Sebuah JSONObject adalah unordered koleksi dari pasangan nama/nilai. Bentuk eksternal adalah string yang dibungkus dalam kurung kurawal dengan titik dua di antara nama-nama dan nilai, dan koma antara nilai-nilai dan nama-nama. Internal form adalah suatu objek yang memiliki get() dan memilih() metode untuk mengakses nilai-nilai dengan nama, dan menempatkan() metode untuk menambahkan atau mengganti nilai dengan nama. Nilai-nilai tersebut dapat menjadi salah satu dari tipe-tipe: Boolean, JSONArray, JSONObject, Jumlah, dan String, atau JSONObject.NULL objek.

  • JSONArray.java Sebuah JSONArray adalah memerintahkan urutan nilai-nilai. Bentuk eksternal adalah string yang dibungkus dalam kurung dengan tanda koma di antara nilai-nilai. Internal form adalah suatu objek yang memiliki get() dan memilih() metode untuk mengakses nilai-nilai dengan indeks, dan menempatkan() metode untuk menambahkan atau mengganti nilai-nilai. Nilai-nilai tersebut dapat menjadi salah satu dari tipe-tipe: Boolean, JSONArray, JSONObject, Jumlah, dan String, atau JSONObject.NULL objek.

  • JSONStringer.java Sebuah JSONStringer adalah alat untuk dengan cepat memproduksi teks JSON.

  • JSONWriter.java Sebuah JSONWriter adalah alat untuk cepat menulis teks JSON ke sungai.

  • JSONTokener.java Sebuah JSONTokener mengambil string sumber dan ekstrak karakter dan token dari itu. Hal ini digunakan oleh JSONObject dan JSONArray konstruktor untuk parse JSON sumber string.

  • JSONException.java Sebuah JSONException dilemparkan ketika sintaks atau prosedural kesalahan terdeteksi.

  • JSONString.java Yang JSONString adalah sebuah antarmuka yang memungkinkan kelas untuk menerapkan mereka JSON serialisasi.

Komentar (6)

JSON situs resmi adalah di mana anda harus melihat. Menyediakan berbagai perpustakaan yang dapat digunakan dengan Jawa, saya've pribadi yang digunakan yang satu ini, JSON-lib yang merupakan implementasi dari bekerja di situs, sehingga memiliki persis sama kelas - metode dll dalam hal ini halaman.

Jika anda klik link html di sana anda dapat menemukan apa pun yang anda inginkan.

Singkatnya:

untuk membuat objek json dan json array, kode ini:

JSONObject obj = new JSONObject();
obj.put("variable1", o1);
obj.put("variable2", o2);
JSONArray array = new JSONArray();
array.put(obj);

o1, o2, dapat berupa tipe primitif (panjang, int, boolean), String atau Array.

Sebaliknya proses ini cukup sederhana, maksudku mengkonversi string ke objek json/array.

String myString;

JSONObject obj = new JSONObject(myString);

JSONArray array = new JSONArray(myString);

Dalam rangka untuk benar diurai anda hanya perlu tahu jika anda parsing array atau objek.

Komentar (0)

Menggunakan google GSON perpustakaan ini untuk

public static  T getObject(final String jsonString, final Class objectClass) {  
    Gson gson = new Gson();  
    return gson.fromJson(jsonString, objectClass);  
}

http://iandjava.blogspot.in/2014/01/java-object-to-json-and-json-to-java.html

Komentar (0)

Seperti banyak menyatakan sudah, cara Yang cukup sederhana untuk melakukan ini dengan menggunakan JSON.sederhana seperti di bawah ini

import org.json.JSONObject;

String someJsonString = "{name:"MyNode", width:200, height:100}";
JSONObject jsonObj = new JSONObject(someJsonString);

Dan kemudian menggunakan jsonObj untuk berurusan dengan Objek JSON. e.g jsonObj.mendapatkan("");

Sesuai link di bawah ini, JSON.sederhana menunjukkan konstan efisiensi untuk investasi kecil dan besar file JSON

http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/

Komentar (2)

JSON IO adalah jauh cara termudah untuk mengkonversi string JSON atau JSON input stream untuk Objek Java

String untuk Objek Java Objek obj = JsonReader.jsonToJava("[\"Hello, World\"]");

https://code.google.com/p/json-io/

Komentar (0)

Ini adalah pertanyaan lama dan json-simple (https://code.google.com/p/json-simple/) bisa menjadi solusi yang baik pada saat itu, tapi silakan mempertimbangkan bahwa proyek tampaknya tidak akan aktif untuk sementara waktu !

Saya sarankan Gson yang sekarang diselenggarakan di: https://github.com/google/gson

Jika kinerja anda, masalah anda bisa melihat-lihat di beberapa tolok ukur http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/ yang membandingkan.

Komentar (0)

I've tertulis perpustakaan yang menggunakan json.org untuk parse JSON, tapi itu benar-benar akan membuat proxy dari sebuah antarmuka untuk anda. Kode/JAR di code.google.com.

http://fixjures.googlecode.com/

Saya don't tahu apakah itu bekerja pada J2ME. Karena menggunakan Java Refleksi untuk membuat proxy, I'm berpikir itu tidak't bekerja. Juga, it's saat ini punya ketergantungan keras di Google Koleksi yang saya ingin menghapus dan's mungkin terlalu berat untuk kebutuhan anda, tetapi memungkinkan anda untuk berinteraksi dengan anda JSON data dalam cara anda'kembali mencari:

interface Foo {
    String getName();
    int getWidth();
    int getHeight();
}

Foo myFoo = Fixjure.of(Foo.class).from(JSONSource.newJsonString("{ name : \"foo name\" }")).create();
String name = myFoo.getName(); // name now .equals("foo name");
Komentar (1)

Jackson untuk file-file besar, GSON untuk file kecil, dan JSON.sederhana untuk penanganan yang baik.

Komentar (2)

Terlepas dari www.json.org anda juga dapat menerapkan sendiri parser menggunakan javacct dan sesuai dengan personnal tata bahasa/schema. Melihat catatan ini di blog saya : http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html

Komentar (2)

Hanya membuat objek Json pada java dengan berikut Json String.Dalam kasus anda

{name:"MyNode", width:200, height:100}

jika di atas adalah Json string , hanya membuat Objek Json dengan itu.

JsonString ="{name:"MyNode", width:200, height:100}";
JSONObject yourJsonObject = new JSONObject(JsonString);
System.out.println("name=" + yourJsonObject.getString("name"));
System.out.println("width=" + yourJsonObject.getString("width"));
Komentar (0)