in

JSON con Java


Este capítulo cubre cómo codificar y decodificar objetos JSON utilizando el lenguaje de programación Java. Comencemos por preparar el entorno para comenzar nuestra programación con Java para JSON.

Medio ambiente

Antes de comenzar a codificar y decodificar JSON con Java, debe instalar cualquiera de los módulos JSON disponibles. Para este tutorial hemos descargado e instalado JSON.simple y han agregado la ubicación de json-simple-1.1.1.jar archivo a la variable de entorno CLASSPATH.

Mapeo entre entidades JSON y Java

JSON.simple mapea entidades del lado izquierdo al lado derecho mientras se decodifica o analiza, y mapea entidades de derecha a izquierda durante la codificación.

JSON Java
cuerda java.lang.String
número java.lang.Number
verdadero | falso java.lang.Boolean
nulo nulo
formación java.util.List
objeto java.util.Map

Al decodificar, la clase concreta predeterminada de java.util.List es org.json.simple.JSONArray y la clase concreta predeterminada de java.util.Map es org.json.simple.JSONObject.

Codificación de JSON en Java

A continuación se muestra un ejemplo simple para codificar un objeto JSON usando Java JSONObject, que es una subclase de java.util.HashMap. No se proporciona ningún pedido. Si necesita el orden estricto de los elementos, use el método JSONValue.toJSONString (map) con implementación de mapa ordenada como java.util.LinkedHashMap.

import org.json.simple.JSONObject;

class JsonEncodeDemo {

   public static void main(String[] args) {
      JSONObject obj = new JSONObject();

      obj.put("name", "foo");
      obj.put("num", new Integer(100));
      obj.put("balance", new Double(1000.21));
      obj.put("is_vip", new Boolean(true));

      System.out.print(obj);
   }
}

Al compilar y ejecutar el programa anterior, se generará el siguiente resultado:

{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}

A continuación se muestra otro ejemplo que muestra una transmisión de objetos JSON utilizando Java JSONObject:

import org.json.simple.JSONObject;

class JsonEncodeDemo {

   public static void main(String[] args) {
	
      JSONObject obj = new JSONObject();

      obj.put("name","foo");
      obj.put("num",new Integer(100));
      obj.put("balance",new Double(1000.21));
      obj.put("is_vip",new Boolean(true));

      StringWriter out = new StringWriter();
      obj.writeJSONString(out);
      
      String jsonText = out.toString();
      System.out.print(jsonText);
   }
}

Al compilar y ejecutar el programa anterior, se genera el siguiente resultado:

{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}

Decodificando JSON en Java

El siguiente ejemplo hace uso de JSONObject y JSONArray donde JSONObject es un java.util.Map y JSONArray es un java.util.List, por lo que puede acceder a ellos con operaciones estándar de Map o List.

import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.ParseException;
import org.json.simple.parser.JSONParser;

class JsonDecodeDemo {

   public static void main(String[] args) {
	
      JSONParser parser = new JSONParser();
      String s = "[0,{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}]";
		
      try{
         Object obj = parser.parse(s);
         JSONArray array = (JSONArray)obj;
			
         System.out.println("The 2nd element of array");
         System.out.println(array.get(1));
         System.out.println();

         JSONObject obj2 = (JSONObject)array.get(1);
         System.out.println("Field "1"");
         System.out.println(obj2.get("1"));    

         s = "{}";
         obj = parser.parse(s);
         System.out.println(obj);

         s = "[5,]";
         obj = parser.parse(s);
         System.out.println(obj);

         s = "[5,,2]";
         obj = parser.parse(s);
         System.out.println(obj);
      }catch(ParseException pe) {
		
         System.out.println("position: " + pe.getPosition());
         System.out.println(pe);
      }
   }
}

Al compilar y ejecutar el programa anterior, se generará el siguiente resultado:

The 2nd element of array
{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}

Field "1"
{"2":{"3":{"4":[5,{"6":7}]}}}
{}
[5]
[5,2]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

java multithreading

Preguntas de la entrevista de Java Multithreading (2021)

apple touch icon@2

¿Cómo puedo crear una matriz bidimensional en JavaScript?