Existuje v Jave/J2ME spôsob, ako previesť reťazec, ako napr:
{name:"MyNode", width:200, height:100}
na internú reprezentáciu toho istého objektu v jednom riadku kódu?
Pretože súčasný spôsob je príliš zdĺhavý:
Object n = create("new");
setString(p, "name", "MyNode");
setInteger(p, "width", 200);
setInteger(p, "height", 100);
Možno knižnica JSON?
Použil som niekoľko z nich a môj obľúbený je,
http://code.google.com/p/json-simple/
Knižnica je veľmi malá, takže je ideálna pre J2ME.
Môžete analyzovať JSON na objekt Java v jednom riadku takto,
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"));
Máte k dispozícii mnoho parserov JSON pre Javu:
JSONObject.java JSONObject je neusporiadaná kolekcia dvojíc meno/hodnota. Jeho vonkajšia podoba je reťazec zabalený do kučeravých zátvoriek s dvojbodkami medzi menami a hodnotami a čiarkami medzi hodnotami a menami. Vnútorná forma je objekt, ktorý má metódy get() a opt() na prístup k hodnotám podľa mena a metódy put() na pridanie alebo nahradenie hodnôt podľa mena. Hodnoty môžu byť ľubovoľného typu: Boolean, JSONArray, JSONObject, Number a String alebo objekt JSONObject.NULL.
JSONArray.java JSONArray je usporiadaná postupnosť hodnôt. Jeho vonkajšia forma je reťazec zabalený do hranatých zátvoriek s čiarkami medzi hodnotami. Vnútorná forma je objekt, ktorý má metódy get() a opt() na prístup k hodnotám podľa indexu a metódy put() na pridávanie alebo nahrádzanie hodnôt. Hodnoty môžu byť ľubovoľného typu: Boolean, JSONArray, JSONObject, Number a String alebo objekt JSONObject.NULL.
JSONStringer.java JSONStringer je nástroj na rýchle vytváranie textu JSON.
JSONWriter.java JSONWriter je nástroj na rýchly zápis textu JSON do tokov.
JSONTokener.java JSONTokener prevezme zdrojový reťazec a extrahuje z neho znaky a tokeny. Používajú ho konštruktory JSONObject a JSONArray na rozbor zdrojových reťazcov JSON.
JSONException.java JSONException sa vyhodí, keď sa zistí syntaktická alebo procedurálna chyba.
JSONString.java JSONString je rozhranie, ktoré umožňuje triedam implementovať ich serializáciu JSON.
Okrem www.json.org môžete implementovať aj vlastný parser pomocou javacc a prispôsobiť ho vlastnej gramatike/schéme. Pozri túto poznámku na mojom blogu: http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html.