En este capítulo presentaremos cómo usar JSON en el lenguaje Java.

Selección de bibliotecas

Java no incorpora un analizador JSON integrado, por lo que para usar JSON se necesitan bibliotecas de terceros.

Estas son algunas bibliotecas de análisis JSON de uso común:

  • Gson: biblioteca JSON desarrollada por Google, con funciones muy completas.
  • FastJson: biblioteca JSON desarrollada por Alibaba, con rendimiento excelente.
  • Jackson: la comunidad es muy activa y la velocidad de actualización es rápida.

El siguiente tutorial se basa en FastJson.

Configuración del entorno

En un proyecto construido con Maven, simplemente agregue la siguiente dependencia al archivo pom.xml.

<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>

Codificación y decodificación

Codificación

El proceso de codificación de variables Java a formato JSON es el siguiente:

Ejemplo

public void testJson() { JSONObject object = new JSONObject(); //string object.put("string","string"); //int object.put("int",2); //boolean object.put("boolean",true); //array List<Integer> integers = Arrays.asList(1,2,3); object.put("list",integers); //null object.put("null",null); ​ System.out.println(object); }

En el ejemplo anterior, primero se crea un objeto JSON, luego se agregan una cadena, un entero, un valor booleano y un arreglo, y finalmente se imprime como cadena.

El resultado de salida es el siguiente:

{"boolean":true,"string":"string","list":[1,2,3],"int":2}

Decodificación

El proceso de decodificación de objetos JSON a variables Java es el siguiente:

Ejemplo

public void testJson2() { ​ JSONObject object = JSONObject .parseObject("{\"boolean\":true,\"string\":\"string\",\"list\":[1,2,3],\"int\":2}"); //string String s = object.getString("string"); System.out.println(s); //int int i = object.getIntValue("int"); System.out.println(i); //boolean boolean b = object.getBooleanValue("boolean"); System.out.println(b); //list List<Integer> integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class); integers.forEach(System.out::println); //null System.out.println(object.getString("null")); ​ }

En el ejemplo anterior, primero se construye un objeto JSON a partir de una cadena en formato JSON, luego se leen sucesivamente una cadena, un entero, un valor booleano y un arreglo, y finalmente se imprimen por separado. El resultado impreso es el siguiente:

string
2
true
1
2
3
null

Conversión entre objetos JSON y cadenas

MétodoFunción
JSON.parseObject()Analizar objeto JSON desde una cadena
JSON.parseArray()Analizar arreglo JSON desde una cadena
JSON.toJSONString(obj/array)Convertir un objeto JSON o un arreglo JSON en una cadena

Ejemplo

//Analizar objeto JSON desde una cadena JSONObject obj = JSON.parseObject("{\"ejemplo\":\"Tutorial de novatos\"}"); //Analizar arreglo JSON desde una cadena JSONArray arr = JSON.parseArray("[\"Tutorial de novatos\",\"EJEMPLO\"]\n"); //Convertir objeto JSON en cadena String objStr = JSON.toJSONString(obj); //Convertir arreglo JSON en cadena String arrStr = JSON.toJSONString(arr);

Tutoriales relacionados