¿Hay alguna forma en Java / J2ME de convertir una cadena, como:
{name:"MyNode", width:200, height:100}
a una representación de Objeto interno 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?
java
json
java-me
serialization
El flash
fuente
fuente
{"name":"MyNode", "width":200, "height":100}
Respuestas:
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,
fuente
La opción más simple es Jackson :
Hay otras bibliotecas igualmente sencillas de usar (ya se mencionó a 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.
fuente
Object obj = new ObjectMapper().readValue("[1, 2, 3]", Object.class);
GSON es una buena opción para convertir un objeto java en un objeto json y viceversa.
Es una herramienta proporcionada por google.
para convertir json a java object use:
fromJson(jsonObject,javaclassname.class)
para convertir java object a json object use:
toJson(javaObject)
y el resto se hará automáticamente
Para obtener más información y para descargar
fuente
Puede hacer esto fácilmente con Google GSON.
Supongamos que tiene una clase llamada Usuario con los campos usuario, ancho y alto y desea convertir la siguiente cadena json en el objeto Usuario.
{"name":"MyNode", "width":200, "height":100}
Puede hacerlo fácilmente, sin tener que lanzar (teniendo en cuenta el comentario de nimcap;)), con el siguiente código:
Donde jsonString es la cadena JSON anterior.
Para obtener más información, consulte https://code.google.com/p/google-gson/
fuente
Tiene muchos analizadores JSON para Java :
JSONObject.java
Un JSONObject es una colección desordenada de pares de nombre / valor. Su forma externa es una cadena envuelta en llaves con dos puntos entre los nombres y los valores y comas entre los valores y los nombres. La forma interna es un objeto que tiene métodos get () y opt () para acceder a los valores por nombre, y métodos put () para agregar o reemplazar valores por nombre. Los valores pueden ser de cualquiera de estos tipos: Boolean, JSONArray, JSONObject, Number y String, o el objeto JSONObject.NULL.
JSONArray.java
Un JSONArray es una secuencia ordenada de valores. Su forma externa es una cadena envuelta entre corchetes con comas entre los valores. La forma interna es un objeto que tiene métodos get () y opt () para acceder a los valores por índice, y métodos put () para agregar o reemplazar valores. Los valores pueden ser de cualquiera de estos tipos: Boolean, JSONArray, JSONObject, Number y String, o el objeto JSONObject.NULL.
JSONStringer.java
Un JSONStringer es una herramienta para producir rápidamente texto JSON.
JSONWriter.java
Un JSONWriter es una herramienta para escribir rápidamente texto JSON en transmisiones.
JSONTokener.java
Un JSONTokener toma una cadena de origen y extrae caracteres y tokens de ella. Lo utilizan los constructores JSONObject y JSONArray para analizar las cadenas de origen JSON.
JSONException.java
Se lanza una JSONException cuando se detecta un error de sintaxis o de procedimiento.
JSONString.java
JSONString es una interfaz que permite a las clases implementar su serialización JSON.
fuente
java
clases simples .El sitio oficial JSON es donde debes mirar. Proporciona varias bibliotecas que se pueden usar con Java, yo personalmente he usado esta, JSON-lib, que es una implementación del trabajo en el sitio, por lo que tiene exactamente la misma clase, métodos, etc. en esta página .
Si hace clic en los enlaces html allí, puede encontrar lo que desee.
En breve:
para crear un objeto json y una matriz json, el código es:
o1, o2, pueden ser tipos primitivos (long, int, boolean), Strings o Arrays.
El proceso inverso es bastante simple, me refiero a convertir una cadena en un objeto / matriz json.
Para ser analizado correctamente, solo tiene que saber si está analizando una matriz o un objeto.
fuente
Utilice la biblioteca GSON de Google para esto
http://iandjava.blogspot.in/2014/01/java-object-to-json-and-json-to-java.html
fuente
Como muchos ya han dicho, una forma bastante simple de hacer esto usando JSON.simple como se muestra a continuación
Y luego use jsonObj para lidiar con JSON Object. por ejemplo, jsonObj.get ("nombre");
Según el siguiente enlace, JSON.simple muestra una eficiencia constante para archivos JSON pequeños y grandes
http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/
fuente
JSON IO es, con mucho, la forma más fácil de convertir una cadena JSON o un flujo de entrada JSON en un objeto Java
Cadena a objeto Java
Object obj = JsonReader.jsonToJava("[\"Hello, World\"]");
https://code.google.com/p/json-io/
fuente
Esta es una pregunta antigua y json-simple ( https://code.google.com/p/json-simple/ ) podría ser una buena solución en ese momento, pero tenga en cuenta que el proyecto parece no estar activo por un tiempo.
Sugiero el Gson que ahora está alojado en: https://github.com/google/gson
Si el rendimiento es su problema, puede echar un vistazo a algunos puntos de referencia http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/ que se comparan.
fuente
Además de www.json.org , también puede implementar su propio analizador utilizando javacc y haciendo coincidir su gramática / esquema personal. Vea esta nota en mi blog: http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html
fuente
Escribí una biblioteca que usa json.org para analizar JSON, pero en realidad creará un proxy de una interfaz para usted. El código / JAR está en code.google.com.
http://fixjures.googlecode.com/
No sé si funciona en J2ME. Dado que usa Java Reflection para crear proxies, creo que no funcionará. Además, actualmente tiene una fuerte dependencia de las colecciones de Google que quiero eliminar y probablemente sea demasiado pesado para sus necesidades, pero le permite interactuar con sus datos JSON de la manera que está buscando:
fuente
Simplemente cree un objeto Json en java con la siguiente cadena Json.
si lo anterior es su cadena Json, simplemente cree un Objeto Json con él.
fuente
Jackson para archivos grandes, GSON para archivos pequeños y JSON.simple para manejar ambos.
fuente