JSON virknes konvertēšana objektā Java ME?

Vai ir veids, kā Java/J2ME konvertēt virkni, piemēram,:

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

vienā koda rindiņā pārvērst to pašu objektu iekšējā objekta attēlojumā?

Jo pašreizējā metode ir pārāk garlaicīga:

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

Varbūt JSON bibliotēka?

Risinājums

Es izmantoju vairākus no tiem, un mans mīļākais ir,

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

Šī bibliotēka ir ļoti maza, tāpēc tā ir ideāli piemērota J2ME.

Jūs varat analizēt JSON uz Java objektu vienā rindā, piemēram, šādi,

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"));
Komentāri (3)

Jums ir pieejami daudzi JSON parseri Java:

  • JSONObject.java JSONObject ir nesakārtota vārdu/vērtību pāru kolekcija. Tās ārējā forma ir virkne, kas ieslēgta loka iekavās ar divpunktu starp nosaukumiem un vērtībām un komatu starp vērtībām un nosaukumiem. Iekšējā forma ir objekts, kam ir get() un opt() metodes, lai piekļūtu vērtībām pēc nosaukuma, un put() metodes, lai pievienotu vai aizstātu vērtības pēc nosaukuma. Vērtības var būt jebkura no šiem tipiem: Boolean, JSONArray, JSONObject, Number un String vai arī objekts JSONObject.NULL.

  • JSONArray.java JSONArray ir sakārtota vērtību secība. Tā ārējā forma ir kvadrātiekavās iekavās ietīta virkne ar komatiem starp vērtībām. Iekšējā forma ir objekts ar get() un opt() metodēm, lai piekļūtu vērtībām pēc indeksa, un put() metodēm, lai pievienotu vai aizstātu vērtības. Vērtības var būt jebkura no šiem tipiem: Boolean, JSONArray, JSONObject, Number un String vai arī objekts JSONObject.NULL.

  • JSONStringer.java JSONStringer ir rīks ātrai JSON teksta sagatavošanai.

  • JSONWriter.java JSONWriter ir rīks ātrai JSON teksta rakstīšanai uz plūsmām.

  • JSONTokener.java JSONTokener ņem avota virkni un izraksta no tās rakstzīmes un žetonus. To izmanto JSONObject un JSONArray konstruktori, lai analizētu JSON avota virknes.

  • JSONException.java JSONException tiek izmests, ja tiek atklāta sintakses vai procedūras kļūda.

  • JSONString.java JSONString ir saskarne, kas ļauj klasēm īstenot savu JSON serializāciju.

Komentāri (6)

Papildus www.json.org varat ieviest arī savu analizatoru, izmantojot javacc un pielāgojot savu personīgo gramatiku/shēmu. Skatīt šo piezīmi manā blogā: http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html.

Komentāri (2)