- docx (formato de Microsoft Word);
- pdf (formato Adobe);
- mobi (comúnmente utilizado en dispositivos Kindle de Amazon);
- y mucho más (ePub, djvu, fb2...).
JSON
Notación de objetos JavaScript. ¡Ya estás un poco familiarizado con él! Hablamos de ello en esta conferencia y analizamos la serialización en JSON aquí . Recibió su nombre por una razón. Los objetos Java convertidos a JSON en realidad se ven exactamente como objetos JavaScript. No necesitas saber JavaScript para entender el significado de nuestro objeto:{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
No es necesario pasar un objeto. JSON también puede contener una serie de objetos:
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
Dado que JSON es un objeto JavaScript, admite los siguientes formatos de datos JavaScript:
- instrumentos de cuerda;
- números (número);
- objetos (objeto);
- matrices (matriz);
- valores booleanos (verdadero y falso);
- nulo.
-
Formato legible por humanos. Esta es una ventaja obvia si el usuario final es un humano. Por ejemplo, su servidor almacena una base de datos con horarios de vuelos. Un cliente humano solicita datos de esta base de datos utilizando una aplicación web mientras está sentado en casa frente a una computadora. Dado que necesita proporcionar los datos en un formato que él pueda entender, JSON es una gran solución.
-
Sencillez. Se podría decir que es elemental :) Arriba dimos un ejemplo de dos archivos JSON. E incluso si nunca ha oído hablar de la existencia de JavaScript (y mucho menos de sus objetos), puede comprender fácilmente qué tipo de objetos se describen allí.
Toda la documentación JSON es una página web con un par de imágenes. -
Generalizado. JavaScript es el lenguaje de interfaz de usuario dominante y dicta sus términos. Usar JSON es imprescindible. Por tanto, una gran cantidad de servicios web utilizan JSON como formato para intercambiar datos. Todos los IDE modernos admiten el formato JSON (incluido Intellij IDEA). Se han escrito varias bibliotecas para trabajar con JSON para todos los lenguajes de programación posibles.
YAML
Al comienzo de su existencia, significaba Yet Another Markup Language, "otro lenguaje de marcado". En ese momento se posicionó como competidor de XML. Ahora, después del paso del tiempo, significa “YAML Ain't Markup Language” (“YAML no es un lenguaje de marcado”). ¿Cómo es él? Imaginemos que necesitamos crear 3 clases de personajes para nuestro juego de computadora: Guerrero, Mago y Ladrón. Contarán con las siguientes características: fuerza, agilidad, resistencia y un conjunto de armas. Así es como se verá nuestro archivo YAML con descripciones de clases:classes:
class-1:
title: Warrior
power: 8
agility: 4
stamina: 7
weapons:
- sword
- spear
class-2:
title: Mage
power: 5
agility: 7
stamina: 5
weapons:
- magic staff
class-3:
title: Thief
power: 6
agility: 6
stamina: 5
weapons:
- dagger
- poison
El archivo YAML tiene una estructura de árbol: algunos elementos están anidados dentro de otros. Podemos controlar el anidamiento utilizando una cierta cantidad de espacios para indicar cada nivel. ¿Qué ventajas tiene el formato YAML?
-
Legible por humanos. Nuevamente, incluso si ve un archivo yaml sin una descripción, puede comprender fácilmente qué objetos se describen allí. YAML es tan legible para los humanos que la página principal de yaml.org es un archivo yaml normal :)
-
Compacidad. La estructura del archivo está formada por espacios: no es necesario utilizar corchetes ni comillas.
-
Soporte para estructuras de datos nativas de lenguajes de programación. Una gran ventaja de YAML sobre JSON y muchos otros formatos es que admite diferentes estructuras de datos. Entre ellos:
-
!!map
Una colección desordenada de pares clave:valor sin posibilidad de duplicados; -
!!omap
Una secuencia ordenada de pares clave:valor sin posibilidad de duplicados; -
!!pairs:
Una secuencia ordenada de pares clave:valor con posibilidad de duplicados; - !!set
Una secuencia desordenada de valores que no son iguales entre sí; - !!seq
Secuencia de valores arbitrarios;
¡Algunas de estas estructuras le resultarán familiares en Java! :) Gracias a esta función, puede serializar varias estructuras de datos de lenguajes de programación al formato YAML.
-
-
Posibilidad de utilizar ancla y alias.
Traducción de las palabras “ancla” y “alias” - “ancla” y “seudónimo”. En principio, describe con bastante precisión la esencia de estos términos en YAML.
Le permiten identificar un elemento en un archivo yaml y hacer referencia a él en el resto del archivo si ocurre repetidamente. El ancla se crea usando el símbolo
&
y el alias se crea usando*
.Digamos que tenemos un archivo con descripciones de los libros de León Tolstoi. Para evitar escribir el nombre del autor manualmente cada vez, simplemente crearemos un ancla "leo" y nos referiremos a él usando un alias cuando lo necesitemos:
books: book-1: title: War and Peace author: &leo Leo Tolstoy year: 1869 book-2: title: Anna Karenina author: *leo year: 1873 book-3: title: Family Happiness author: *leo year: 1859
Cuando leamos este archivo con algún analizador, el valor "León Tolstoi" se sustituirá en los lugares correctos en lugar de nuestro alias.
- Puede incrustar datos en otros formatos en YAML. Por ejemplo, JSON:
books: [ { "title": "War and Peace", "author": "Leo Tolstoy", "year": 1869 }, { "title": "Anna Karenina", "author": "Leo Tolstoy", "year": 1873 }, { "title": "Family Happiness", "author": "Leo Tolstoy", "year": 1859 } ]
Otros formatos de serialización
XML
Este formato se basa en el llamado árbol de etiquetas.<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Cada elemento consta de una etiqueta de apertura y cierre (<> y </>). Cada elemento puede tener elementos anidados. XML es un formato común, no inferior a JSON y YAML (si hablamos de uso en proyectos reales). Tenemos una conferencia separada sobre XML .
BSON (JSON binario)
Como sugiere su nombre, es muy similar a JSON, pero no es legible por humanos y opera con datos en formato binario. Esto lo hace muy conveniente para almacenar y transferir imágenes y otros archivos adjuntos. Además, BSON admite algunos tipos de datos que no están disponibles en JSON. Por ejemplo, puede escribir una fecha (en formato de milisegundos) o incluso un fragmento de código JavaScript en un archivo BSON. La popular base de datos NoSQL MongoDB almacena información en formato BSON.Protocolo basado en posición
En algunas situaciones, necesitamos reducir drásticamente la cantidad de datos transferidos (por ejemplo, si hay muchos datos y necesitamos reducir la carga). En esta situación, podemos usar un protocolo basado en posición , es decir, pasar valores de parámetros sin los nombres de los parámetros mismos."Leo Tolstoy" | "Anna Karenina" | 1873
Los datos en este formato ocupan mucho menos espacio que un archivo JSON completo. Por supuesto, existen otros formatos de serialización, pero no es necesario que los conozca todos ahora :) Es bueno estar familiarizado con los formatos que ahora son el estándar de la industria para el desarrollo de aplicaciones y recordar sus ventajas y diferencias entre sí. . Y nuestra conferencia ha llegado a su fin :) ¡No olvides resolver un par de problemas hoy! ¡Hasta luego! :)
GO TO FULL VERSION