¿Convertir una cadena JSON en un objeto en Java ME?
¿Hay alguna forma en Java/J2ME de convertir una cadena, como por ejemplo:
{name:"MyNode", width:200, height:100}
¿A una representación de Objeto interna del mismo, en una línea de código?
Porque el método actual es demasiado tedioso:
Object n = create("new");
setString(p, "name", "MyNode");
setInteger(p, "width", 200);
setInteger(p, "height", 100);
¿Quizás una biblioteca JSON?
Aceptado
Usé algunos de ellos y mi favorito es,
http://code.google.com/p/json-simple/
La biblioteca es muy pequeña por lo que es perfecta para J2ME.
Puede analizar JSON en un objeto Java en una línea como esta,
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"));
La opción más sencilla es Jackson :
MyObject ob = new ObjectMapper().readValue(jsonString, MyObject.class);
Hay otras bibliotecas igualmente fáciles de usar (ya se mencionó Gson); pero algunas opciones son más laboriosas, como la biblioteca org.json original, que requiere que cree un "JSONObject" intermedio incluso si no los necesita.