Java ME'de bir JSON dizesini nesneye dönüştürme?

Java/J2ME'de aşağıdaki gibi bir dizeyi dönüştürmenin bir yolu var mı?

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

tek bir kod satırında aynı nesnenin dahili Nesne temsiline nasıl dönüştürülebilir?

Çünkü mevcut yöntem çok sıkıcı:

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

Belki bir JSON kütüphanesi?

Çözüm

Birkaç tanesini kullandım ve favorim şu,

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

Kütüphane çok küçük olduğundan J2ME için mükemmeldir.

JSON'u Java nesnesine aşağıdaki gibi tek bir satırda ayrıştırabilirsiniz,

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"));
Yorumlar (3)

Java için birçok JSON ayrıştırıcınız var:

  • JSONObject.java JSONObject, ad/değer çiftlerinden oluşan sırasız bir koleksiyondur. Dış biçimi, adlar ve değerler arasında iki nokta üst üste ve değerler ile adlar arasında virgül bulunan küme parantezleri içine sarılmış bir dizedir. İç biçimi, değerlere ada göre erişmek için get() ve opt() yöntemlerine ve ada göre değer eklemek veya değiştirmek için put() yöntemlerine sahip bir nesnedir. Değerler bu türlerden herhangi biri olabilir: Boolean, JSONArray, JSONObject, Number ve String veya JSONObject.NULL nesnesi.

  • JSONArray.java JSONArray, sıralı bir değerler dizisidir. Dış biçimi, değerler arasında virgül bulunan köşeli parantezler içine alınmış bir dizedir. İç biçimi, değerlere dizine göre erişmek için get() ve opt() yöntemlerine ve değer eklemek veya değiştirmek için put() yöntemlerine sahip bir nesnedir. Değerler bu türlerden herhangi biri olabilir: Boolean, JSONArray, JSONObject, Number ve String veya JSONObject.NULL nesnesi.

  • JSONStringer.java JSONStringer, hızlı bir şekilde JSON metni üretmek için kullanılan bir araçtır.

  • JSONWriter.java JSONWriter, JSON metnini akışlara hızlı bir şekilde yazmak için kullanılan bir araçtır.

  • JSONTokener.java JSONTokener bir kaynak dizeyi alır ve ondan karakterleri ve simgeleri çıkarır. JSONObject ve JSONArray kurucuları tarafından JSON kaynak dizelerini ayrıştırmak için kullanılır.

  • JSONException.java Bir sözdizimi veya prosedür hatası tespit edildiğinde bir JSONException atılır.

  • JSONString.java JSONString, sınıfların JSON serileştirmelerini uygulamalarına olanak tanıyan bir arayüzdür.

Yorumlar (6)

www.json.org]1 dışında javacc kullanarak ve kişisel gramerinizi/şemanızı eşleştirerek kendi ayrıştırıcınızı da uygulayabilirsiniz. Blogumdaki şu nota bakın: http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html

Yorumlar (2)