logo

¿Cómo convertir una cadena en un objeto JSON en Java?

Hoy en día es muy común recibir datos en Cadena JSON formato en lugar de XML. Cuando tratamos con JSON String en Java, no convierte el Cadena JSON a Objeto JSON . Pero usa el Cadena JSON No siempre es una buena opción porque es difícil afrontarlo. Debido al cambio y la demanda de la tecnología, necesitamos convertir cadena JSON en objeto JSON para recuperar valores. Para resolver este problema existen algunas bibliotecas de código abierto que nos permiten convertir cadena JSON en objeto JSON. En esta sección hemos explicado cómo convertir una cadena JSON en un objeto JSON en detalle con el ejemplo. Antes de pasar al tema principal, echemos un vistazo al formato JSON.

 jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] } 

El formato JSON anterior contiene seis atributos de los cuales los dos primeros son cadenas, los tres siguientes son numéricos y, por último, una matriz JSON.

Convertir cadena JSON en objeto JSON

Existen las siguientes tres bibliotecas que se utilizan para convertir cadenas en objetos JSON en Java:

  • Usando la biblioteca Gson
  • Usando la biblioteca JSON simple
  • Biblioteca Jackson

Usando la biblioteca Gson

Gson es de código abierto y rico. Java Biblioteca proporcionada por Google. Se utiliza para convertir cadenas JSON en objetos JSON equivalentes y objetos JSON en cadenas JSON. La siguiente línea de código se utiliza para convertir una cadena JSON en un objeto JSON.

 Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class) 

También podemos convertir un objeto JSON en una cadena JSON usando el aJson() método.

 String str = g.toJson(p); 

Usando la biblioteca JSON simple

Es otra biblioteca Java de código abierto que se utiliza para convertir cadenas JSON en objetos JSON. La ventaja de la biblioteca JSON-Simple es su pequeño tamaño. Es perfecto cuando el entorno de restricción de memoria es importante. Tenga en cuenta que también es compatible con JDK 1.2. Significa que podemos usarlo con un proyecto heredado que no está en Java 5. Usamos las siguientes declaraciones para convertir la cadena JSON en un objeto JSON.

 JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse); 

Usando la biblioteca Jackson

La biblioteca Jackson es una biblioteca Java eficiente y ampliamente utilizada para asignar objetos Java a JSON y viceversa. Es rico en funciones, rápido en rendimiento y también admite transmisión. La secuencia puede analizar una salida JSON grande de servicios web sin cargarla completamente en la memoria. La siguiente declaración convierte una cadena JSON que representa a un estudiante en una clase Java que representa al estudiante.

 Student student = new ObjectMapper().readValue(jsonString, Student.class); 

La desventaja de la biblioteca Jackson es que requiere al menos JDK 1.5. Por tanto, si estamos ante una versión anterior, no cabrá allí. Otra desventaja de la biblioteca Jackson es que no es compatible con J2ME.

Ejemplo de conversión de cadena JSON a objeto JSON

En el siguiente programa, hemos convertido una cadena JSON en un objeto JSON.

JsonStringToJsonObjectExample.java

 import org.json.JSONObject; import org.json.JSONArray; public class JsonStringToJsonObjectExample { public static void main(String args[]) { String str = &apos;[{&apos;No&apos;:&apos;17&apos;,&apos;Name&apos;:&apos;Andrew&apos;},{&apos;No&apos;:&apos;18&apos;,&apos;Name&apos;:&apos;Peter&apos;}, {&apos;No&apos;:&apos;19&apos;,&apos;Name&apos;:&apos;Tom&apos;}]&apos;; JSONArray array = new JSONArray(str); for(int i=0; i <array.length(); i++) { jsonobject object="array.getJSONObject(i);" system.out.println(object.getstring('no')); system.out.println(object.getstring('name')); } < pre> <p> <strong>Output:</strong> </p> <pre> 17 Andrew 18 Peter 19 Tom </pre> <p>Let&apos;s see another example.</p> <p> <strong>JsonStringToJsonObjectExample2.java</strong> </p> <pre> import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } </pre> <p> <strong>Output:</strong> </p> <pre> Sam Smith Python </pre> <hr></array.length();>

Veamos otro ejemplo.

JsonStringToJsonObjectExample2.java

doble a cadena java
 import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } 

Producción:

 Sam Smith Python