JSON es uno de los formatos más populares para representar datos como texto. Por ejemplo, JSON se usa para transferir datos entre el frontend y el backend, en archivos de configuración, en juegos, en editores de texto y en muchas otras áreas. Como programador, definitivamente encontrarás JSON.

Introducción a la sintaxis

Enumeremos los tipos de datos disponibles en JSON:

  1. Las cadenas son cualquier carácter entre comillas dobles:

    "kwerty"
    "125 + 42"
    "GRAMO"

    Los caracteres especiales se escapan con una barra inclinada:

    "primera línea\nsegunda línea"
    "¡El dijo hola!\""
  2. Números, incluidos los números negativos y reales. Sin comillas:

    18 -333 17.88 1.2e6
  3. Los valores booleanos son verdadero / falso (sin comillas).

  4. nulo es el valor estándar para representar "nada". Aquí no se utilizan comillas.

  5. Matriz: este tipo puede contener valores de cualquier otro tipo. Está envuelto entre corchetes. Sus elementos están separados por comas:

    ["Código", "Gimnasio", "CodeGym", "¯\_(ツ)_/¯"]
    [verdadero, verdadero, falso, verdadero, falso, falso, falso, falso, falso]
    [[1, 2], [3, 999, 4, -5], [77]]

    El último ejemplo es una matriz de matrices

  6. Objeto: este tipo complejo es el más utilizado. Contiene pares clave-valor, donde el valor puede ser cualquiera de los tipos enumerados anteriormente, así como otros objetos. Está envuelto entre llaves y los pares están separados por comas:

    
    {
     "name": "Dale",
     "age": 7
    }
    

Representando un objeto Java como JSON

Ahora tomemos un objeto Java y veamos cómo se ve como JSON.

Primero, definamos una clase:


public class Human {
	String name;
	boolean male;
	int age;
	Set<Human> parents;

	public Human(String name, boolean male, int age) {
    	    this.name = name;
    	    this.male = male;
    	    this.age = age;
	}
}

Ahora vamos a crear nuestro objeto:


	Human father = new Human("Peter", true, 31);
	Human mother = new Human("Mary", false, 28);
	mother.parents = new HashSet<>();
	Human son = new Human("Paul", true, 7);
	son.parents = Set.of(father, mother);

Y ahora tratemos de representar el son objeto con la mayor precisión posible en formato JSON:

{
 "nombre": "Paul",
 "masculino": verdadero,
 "edad": 7,
 "padres": [
 {
   "nombre": "Pedro",
   "masculino": verdadero,
   "edad": 31,
   "padres" : nulo
 },
 {
   "nombre" : "María",
   "masculino" : falso,
   "edad" : 28,
   "padres" : nulo
 }
]
}

Comentarios en JSON

Todo aquí es exactamente igual que en Java. Hay dos tipos de comentarios: // y /*...*/. Espero no tener que recordarte en qué se diferencian.