Een JSON string omzetten naar een object in Java ME?

Is er een manier in Java/J2ME om een string te converteren, zoals:

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

naar een interne Object representatie van hetzelfde, in een regel code?

Omdat de huidige methode te omslachtig is:

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

Misschien een JSON bibliotheek?

Oplossing

Ik heb er een paar gebruikt en mijn favoriet is,

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

De bibliotheek is erg klein dus perfect voor J2ME.

Je kunt JSON parsen in een Java object in een regel als deze,

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

Je hebt veel JSON parsers voor Java:

  • JSONObject.java Een JSONObject is een ongeordende verzameling van naam/waarde paren. De externe vorm is een string tussen accolades met dubbele punten tussen de namen en waarden, en komma's tussen de waarden en namen. De interne vorm is een object met methoden get() en opt() voor toegang tot de waarden op naam, en methoden put() voor het toevoegen of vervangen van waarden op naam. De waarden kunnen elk van deze types zijn: Boolean, JSONArray, JSONObject, Getal, en String, of het object JSONObject.NULL.

  • JSONArray.java Een JSONArray is een geordende opeenvolging van waarden. De externe vorm is een string tussen vierkante haken met komma's tussen de waarden. De interne vorm is een object met get() en opt() methodes voor toegang tot de waarden per index, en put() methodes voor het toevoegen of vervangen van waarden. De waarden kunnen elk van deze types zijn: Boolean, JSONArray, JSONObject, Getal, en String, of het object JSONObject.NULL.

  • JSONStringer.java Een JSONStringer is een tool om snel JSON tekst te produceren.

  • JSONWriter.java]5 Een JSONWriter is een tool om snel JSON tekst naar streams te schrijven.

  • JSONTokener.java]6 Een JSONTokener neemt een source string en extraheert er tekens en tokens uit. Het wordt gebruikt door de JSONObject en JSONArray constructors om JSON source strings te parseren.

  • JSONException.java Een JSONException wordt gegooid wanneer een syntaxis- of procedurefout wordt gedetecteerd.

  • JSONString.java De JSONString is een interface die klassen toelaat om hun JSON serialisatie te implementeren.

Commentaren (6)

Behalve www.json.org kun je ook je eigen parser implementeren door javacc te gebruiken en je eigen grammatica/schema te gebruiken. Zie deze opmerking op mijn blog : http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html

Commentaren (2)