¿Qué es json. Formato JSON: que es, como crear y abrir un archivo

Las variables, matrices y objetos son una forma familiar y conveniente de presentación de datos. Es habitual describir los datos en el lenguaje del navegador JavaScript, que no es necesario en el lenguaje del servidor PHP. El formato JSON le permite generalizarlos en un todo y no centrarse en el lenguaje de programación. Esto convierte los datos en pares: "nombre \u003d valor". El valor de cada uno de ellos también puede ser una colección de dichos pares.

Se acepta asociar JSON con llaves y esta última está bastante justificada, ya que el formato JSON \u003d Object Notation JavaScript. Mucho ha cambiado en los últimos años particularmente dinámicos. Lo que se creó para un propósito específico a menudo trajo resultados inesperados o abrió nuevos horizontes.

Intercambio de datos: navegador - servidor

La tecnología AJAX se ha convertido en una actualización de página tradicional y regular totalmente ha dejado de ser popular. Un visitante, al abrir un sitio, inicia una serie de intercambios de datos parciales cuando ciertas páginas cambian solo en el lugar que es relevante.

Se cree que la aparición de JSON está asociada con el uso de AJAX, pero de hecho, la notación asociativa y su objeto (características de la sintaxis para describir y usar objetos) están mucho más relacionadas con JSON que el intercambio de datos entre el navegador y el servidor.

Dado que el contenido de las páginas de los sitios modernos se ha vuelto realmente "masivo" (voluminoso), la eficacia del formato para el intercambio de datos ha adquirido una importancia particular. Esto no quiere decir que JSON se haya convertido en una nueva representación de datos, pero el hecho de que haya sido durante mucho tiempo parte de la sintaxis de JavaScript es significativo.

El uso de cirílico en la denominación de variables es un fenómeno muy inesperado (una tontería), pero funciona en las últimas versiones de Chrome, Firefox e incluso Internet Explorer 11.

Cirílico y JSON

Por supuesto, no debe usar este fenómeno completamente inesperado, recordando con qué facilidad los valores de las variables escritas en letras rusas se convierten en krakozyabry: qué puedo decir sobre los nombres, especialmente los externos.

Es dudoso que la iniciativa en nombres cirílicos sea apoyada por el entorno externo del navegador, con el que tiene que lidiar constantemente. Pero este hecho merece atención por la sencilla razón de que el formato JSON es la capacidad de escribir nombres y valores de la forma que desee el desarrollador. Esto es fundamental, ya que en cada tarea, describir el alcance según lo requiera simplifica enormemente la depuración y reduce el número de errores.

No importa en qué tipo de base se basó la innovación sintáctica: JSON, es importante que le dio un derecho legal y una oportunidad real para poner la correspondencia: "cualquier nombre \u003d cualquier valor".

Hay que rendir homenaje al lenguaje JavaScript: lo que aporta la sintaxis no obliga al desarrollador y no le impone nada. El desarrollador utiliza libremente la sintaxis del lenguaje para la formación óptima del modelo de datos y el algoritmo para su uso.

PHP y JSON

Al aceptar datos en formato JSON, el servidor (a través de PHP, en particular) proporciona la capacidad de procesarlos tal como están y devolver el resultado al navegador en un formato similar. Matriz original de PHP:

  • $ cJSON \u003d matriz ("a" \u003d\u003e "alfa", "b" \u003d\u003e "beta", "g" \u003d\u003e "gamma").

Convierta a formato JSON para su transmisión al navegador:

  • $ cJS \u003d json_encode ($ cJSON).

Resultado:

  • ("a": "alfa", "b": "beta", "g": "gamma").

Se permite el anidamiento que se muestra en la foto.

Aquí la matriz generada fue agregada por un nuevo elemento "en sí mismo" con el índice automático "0", y luego nuevamente con el índice especificado "z".

Json_decode () convierte una cadena JSON en una matriz PHP. Se pueden lograr resultados similares manipulando funciones y explode (). En algunos casos, esta opción es preferible.

Nivel de anidación

Los elementos se pueden anidar entre sí tanto en el lado del navegador como en el del servidor. En la práctica, el formato JSON (como se describe en RFC 4627) proporciona significativamente más de 4 niveles de anidamiento, pero no se debe abusar de esta característica.

Es mejor no ir más allá de la suficiencia razonable, hace que el código sea legible, facilita la depuración y la comprensión de otros desarrolladores.

Se acostumbra referir JSON a estructuras de datos que son más simples que XML y son comprensibles tanto para personas como para computadoras. Esto es cierto cuando la cantidad de datos es pequeña y el desarrollador ha elegido el nivel de anidamiento correctamente. En todos los demás casos, es difícil contar el número de corchetes y entenderlo tanto en el lado del navegador como en el lado del servidor.

Archivos JSON

JSON en la práctica a menudo no se limita a una cadena corta legible. Cualquier construcción de datos es siempre pragmática. Al mismo tiempo, JSON se puede utilizar de forma eficaz tanto en datos reales de la tarea (personal de la empresa) como para la implementación de datos temporales (caché de objetos).

Personal empresarial y formato JSON: ejemplo

Por lo general, un registro sobre una persona es un apellido, nombre, patronímico, año de nacimiento, especialidad, educación, ... y algunos significados más simples. Incluso en empresas particularmente exigentes, un registro sobre una persona no excederá de diez o dos campos. Es perceptible y se puede colocar en una cadena de base de datos.

Si una empresa emplea a varias personas, esto es una cosa, pero si se emplea a decenas de miles, esto es completamente diferente. Puede seguir utilizando la base de datos, pero almacenarla como un archivo parece más práctico y fácil de usar.

JSON es un archivo de texto sin formato. El caso de la mesa de personal, dondequiera que fuera. Siempre puedes leerlo. Abrir y editar también está disponible en cualquier editor de texto que no tenga la costumbre de agregar su información de servicio al contenido del archivo. En general, * .json es texto puro tanto dentro del navegador como dentro del archivo: una cadena.

La foto muestra el caché del objeto que forma la imagen, un ejemplo.

Este es un ejemplo del contenido de un archivo generado por un sitio que brinda un servicio de impresión volumétrica en color para tazas y cerámicas. Naturalmente, decidir tener un formato JSON de este tipo que abrirlo es realmente problemático. Sin embargo, en este y otros casos similares, no hay problemas para leer el archivo: PHP lee el archivo, lo analiza y lo transfiere al navegador. Los datos modificados por el visitante se devuelven al servidor y se escriben.

En este caso de uso, el archivo actúa como una variable que se almacena fuera del código. Si es necesario, la variable recibe un valor del archivo, y si el visitante lo cambia en el cuadro de diálogo proporcionado por el sitio, todos los cambios se registrarán como están. No es necesario leer y comprobar el contenido del archivo.

JSON se usa a menudo para almacenar y usar información de servicio; esta no es una tabla de personal, no es necesario que el desarrollador o el visitante del sitio la vean.

XML y JSON

"Todo a su debido tiempo" es un conocimiento clásico tomado como axioma incluso antes de la llegada de la programación. "Nada parece así", esto también fue antes de que una persona escribiera el primer programa inteligible en lenguaje artificial.

Los formatos de datos surgen de una necesidad real y se basan en los conocimientos adquiridos. HTML tiene su propia ruta, XML tiene su propia ruta y JSON es una lógica basada en objetos de JavaScript extendida a otros lenguajes. Comparar una cosa con otra no es lo mejor que se puede hacer. A cada uno lo suyo.

XML hace frente a sus tareas a la perfección y claramente no pasará a la historia. Y JSON se utilizó hasta 2006, pero no todos los desarrolladores consideraron que era su deber declarar ciertas opciones para representar sus datos.

En la práctica, hubo casos en los que los programas se escribieron en BASIC que no usaban JSON como tal, sino que almacenaban perfectamente los pares "nombre \u003d valor" y los ponían a disposición de los algoritmos adecuados en el momento adecuado.

Caracteres especiales ("", "~", "|", ...) y formatos de datos

El hábito de trabajar con matrices y objetos asociativos en JavaScript hace que el uso de JSON sea natural y conveniente. Es un formato realmente genial, pero la habilidad de separar y concatenar manipulando cadenas y arreglos tiene raíces mucho más profundas.

Las funciones de unión / división de JavaScript e implosión / explosión de PHP le permiten utilizar de manera conveniente y eficiente tanto XML, JSON como sus propios formatos de datos. El último suele ser más óptimo, mientras que los dos primeros son ideales para uso general. Si la información se transfiere a otro desarrollador, servidor, archivo o base de datos, es mejor no encontrar XML y JSON. Todos trabajan con ellos, porque la transmisión / recepción de información no necesita comentarios.

Usando JSON en Android

Leer y escribir datos en formato JSON en Android no solo es la norma, sino también muchos objetos orientados a trabajar con este formato de datos.

En este caso, se utiliza el formato JSON. Quizás sea así, pero la pregunta no es sobre la fenomenalidad de las redes sociales, sino sobre el hecho de que la presentación de información en el formato "nombre \u003d valor" es realmente conveniente tanto para la programación como para el uso. A diferencia de "XML" estricto y complejo, este es un formato verdaderamente amigable para los humanos.

Matrices asociativas

Ocurrió que las variables deberían describirse (JavaScript) o al menos indicar el valor inicial (PHP). En ambos casos, una variable puede cambiar su tipo muy fácilmente. El idioma realiza esta conversión automáticamente si es necesario.

Pero, ¿por qué la variable no debería cambiar también su nombre, aparecer durante la ejecución del algoritmo y desaparecer cuando ya no sea necesaria? Los arreglos asociativos resuelven este problema, pero luego, cuando se utilizan tales variables relativamente dinámicas, el nombre del arreglo y las construcciones sintácticas correspondientes seguirán en el lugar de su aplicación.

Esta circunstancia es especialmente pronunciada en PHP, pero puede tolerarlo, como, por cierto, con el símbolo "$" en el nombre de la variable y la combinación "$ this-\u003e" dentro del objeto. Programando en JavaScript y PHP al mismo tiempo, al principio realmente te preguntas qué tan diferente es todo, pero luego todo se vuelve tan familiar y natural ...

Matriz asociativa -\u003e JSON

En este ejemplo, se crea un documento * .docx utilizando la biblioteca PHPOffice / PHPWord, y la matriz aProperties contiene las propiedades de este documento (autor, empresa, título, categoría, fecha de creación ...).

La segunda matriz contiene datos para la página:

  • orientación (horizontal o normal);
  • dimensiones vertical y horizontalmente;
  • sangrías (márgenes a la izquierda, arriba, abajo, derecha);
  • encabezados y pies de pagina.

La formación del documento se realiza en el servidor donde está instalada la biblioteca PHPOffice / PHPWord. El sitio proporciona la gestión de los valores de estas matrices utilizando JavaScript. El resultado en formato JSON se devuelve al servidor y se utiliza en algoritmos PHP, en sus construcciones, es decir, en matrices.

Variables dinámicas

El formato JSON resuelve el problema de las variables dinámicas. Aquí puede crear, modificar y eliminar variables sin desorden sintáctico innecesario. Se ve bien y se usa en JavaScript.

En este ejemplo, la función GetOjInfo () obtiene un nombre de valor y un valor de un objeto. Inicialmente, el objeto de cadena JSON asignado a la variable ojInfo tiene tres elementos: nombre, edad y trabajo. La variable de estado se agrega un poco más tarde.

Después de la primera declaración de eliminación, la cadena ojInfo pierde el elemento de edad, después de la segunda eliminación, el elemento de trabajo. Si asumimos que esta cadena es una colección de variables que tienen un cierto significado, entonces mediante JSON puede crear, modificar y eliminar cualquiera de sus conjuntos fuera del campo operativo (sintaxis) para describir y procesar JavaScript.

El formato JSON no fue diseñado para esta opción, pero es posible, práctico y conveniente.

Probablemente hayas oído hablar de JSON alguna vez. ¿Qué es? ¿Qué puede hacer y cómo utilizarlo?

En este tutorial, cubriremos los conceptos básicos de JSON y cubriremos los siguientes puntos:

  • ¿Qué es JSON?
  • ¿Para qué se utiliza JSON?
  • ¿Cómo creo una cadena JSON?
  • Un ejemplo simple de una cadena JSON.
  • Comparemos JSON y XML.
  • ¿Cómo trabajar con JSON en JavaScript y PHP?

¿Qué es JSON?

JSON es una forma sencilla basada en texto de almacenar y transmitir datos estructurados. Con una sintaxis simple, puede almacenar fácilmente cualquier cosa, desde un solo número hasta cadenas, matrices y objetos en texto sin formato. También puede vincular matrices y objetos para crear estructuras de datos complejas.

Una vez que se crea una cadena JSON, es fácil enviarla a otra aplicación o en otro lugar de la web porque es texto sin formato.

JSON tiene los siguientes beneficios:

  • Es compacto.
  • Sus oraciones son fáciles de leer y componer tanto por humanos como por computadoras.
  • Es fácil convertirlo en una estructura de datos para la mayoría de los lenguajes de programación (números, cadenas, booleanos, matrices, etc.)
  • Muchos lenguajes de programación tienen funciones y bibliotecas para leer y crear estructuras JSON.

JSON son las siglas de JavaScript Object Notation. Como sugiere el nombre, se basa en la forma en que se definen los objetos (como crear matrices asociativas en otros lenguajes) y matrices.

¿Para qué se utiliza JSON?

El uso más común de JSON es enviar datos desde el servidor al navegador. Normalmente, los datos JSON se entregan mediante AJAX, que permite que el navegador y el servidor se comuniquen sin tener que volver a cargar la página.

  1. El usuario hace clic en la miniatura de un producto en la tienda en línea.
  2. JavaScript que se ejecuta en el navegador genera una solicitud AJAX al script PHP que se ejecuta en el servidor, pasando el ID de producto seleccionado.
  3. El script PHP obtiene el nombre del producto, la descripción, el precio y otra información de la base de datos. Luego, compone una cadena JSON a partir de los datos y la envía al navegador.
  4. El JavaScript que se ejecuta en el navegador recibe una cadena JSON, la decodifica y muestra la información del producto en la página para el usuario.

También puede usar JSON para enviar datos desde el navegador al servidor pasando una cadena JSON como parámetro a una solicitud GET o POST. Sin embargo, este método es menos común, ya que el paso de datos a través de solicitudes AJAX se puede simplificar. Por ejemplo, el ID del producto se puede incluir en la URL como parte de la solicitud GET.

La biblioteca jQuery tiene varios métodos, como getJSON () y parseJSON (), que facilitan la obtención de datos JSON a través de solicitudes AJAX.

¿Cómo creo una cadena JSON?

Existen algunas reglas básicas para crear una cadena JSON:

  • La cadena JSON contiene una matriz de valores o un objeto (una matriz asociativa de pares nombre / valor).
  • Formación entre corchetes ([y]) y contiene una lista de valores separados por comas.
  • Un objeto está encerrado entre llaves ((y)) y contiene una lista separada por comas de pares nombre / valor.
  • Par nombre / valor consta del nombre del campo, encerrado entre comillas dobles, seguido de dos puntos (:) y el valor del campo.
  • Valor en una matriz u objeto puede ser:
    • Número (entero o punto flotante)
    • Cadena (entre comillas dobles)
    • Valor booleano (verdadero o falso)
    • Otra matriz (entre corchetes)
    • Otro objeto (entre llaves)
    • Valor nulo

Para incluir comillas dobles en una cadena, debe usar una barra invertida: \\ ". Como con muchos lenguajes de programación, puede colocar caracteres de control y códigos hexadecimales en una cadena, precedidos por una barra invertida. Consulte el sitio JSON para obtener más detalles.

Un ejemplo simple de cadena JSON

A continuación se muestra un ejemplo de un pago JSON:

("orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [correo electrónico protegido]"," contenido ": [(" productID ": 34," productName ":" Super producto "," cantidad ": 1), (" productID ": 56," productName ":" Producto maravilloso "," cantidad ": 3)], "orderCompleted": verdadero)

Considere la línea en detalle:

  • Creamos un objeto usando llaves ((y)).
  • El objeto tiene varios pares de nombre / valor: "orderID": 12345 Propiedad llamada "orderId" y valor entero 12345 "shopperName": propiedad "Vanya Ivanov" llamada "shopperName" y valor de cadena "Vanya Ivanov" "shopperEmail": " [correo electrónico protegido]"Propiedad denominada" shopperEmail "y valor de cadena" [correo electrónico protegido]"" contenido ": [...] Una propiedad llamada" contenido "cuyo valor es una matriz" orderCompleted ": verdadero Una propiedad llamada" orderCompleted "con un valor booleano verdadero
  • Hay 2 objetos en la matriz de "contenido" que representan los elementos individuales del pedido. Cada objeto contiene 3 propiedades: productID, productName y amount.

Por cierto, dado que JSON se basa en la declaración de objetos JavaScript, puede convertir rápida y fácilmente la cadena JSON anterior en un objeto JavaScript:

Comparando JSON y XML

De muchas maneras, puede pensar en JSON como una alternativa a XML, al menos para aplicaciones web. El concepto de AJAX se basó originalmente en el uso de XML para transferir datos entre el servidor y el navegador. Pero en los últimos años, JSON se ha vuelto cada vez más popular para transportar datos AJAX.

Si bien XML es una tecnología probada que se utiliza en un buen número de aplicaciones, JSON tiene la ventaja de ser un formato de datos más pequeño y más fácil de leer.

Así es como se ve el objeto XML de ejemplo anterior:

orderID 12345 shopperName Ваня Иванов shopperEmail [email protected] contents productID 34 productName Супер товар quantity 1 productID 56 productName Чудо товар quantity 3 pedido completado cierto

La versión XML es significativamente más grande. En realidad, tiene 1128 caracteres, mientras que la variante JSON solo tiene 323 caracteres. La versión XML también es difícil de leer.

Por supuesto, este es un ejemplo radical. Y es posible crear un registro XML más compacto. Pero incluso será significativamente más largo que el equivalente JSON.

Trabajar con una cadena JSON en JavaScript

JSON tiene un formato simple, pero crear una cadena JSON a mano es tedioso. Además, a menudo es necesario tomar una cadena JSON y convertir su contenido en una variable que se pueda usar en el código.

La mayoría de los lenguajes de programación tienen herramientas para convertir fácilmente las variables en cadenas JSON y viceversa.

Crea una cadena JSON a partir de una variable

JavaScript tiene un método JSON.stringify () incorporado que toma una variable y devuelve una cadena JSON que representa su contenido. Por ejemplo, creemos un objeto JavaScript que contenga la información del pedido de nuestro ejemplo y luego creemos una cadena JSON a partir de él:

Este código dará:

Tenga en cuenta que el método JSON.stringify () devuelve una cadena JSON sin espacios. Es más difícil de leer, pero más compacto para la transmisión a través de una red.

Hay varias formas de analizar una cadena JSON en JavaScript, pero la más segura y confiable es usar el método JSON.parse () incorporado. Recibe una cadena JSON y devuelve un objeto o matriz JavaScript que contiene los datos. Por ejemplo:

Hemos creado una variable jsonString que contiene la cadena JSON de nuestro pedido de ejemplo. Luego pasamos esta cadena al método JSON.parse (), que crea un objeto que contiene los datos JSON y los almacena en la variable carrito. Todo lo que queda es verificar imprimiendo las propiedades del objeto shopperEmail y el productName de la matriz de contenido.

Como resultado, obtenemos el siguiente resultado:

En una aplicación real, su código JavaScript recibirá el pedido como una cadena JSON en la respuesta AJAX del script del servidor, pasará la cadena al método JSON.parse () y luego usará los datos para mostrarlos en la página del usuario.

JSON.stringify () y JSON.parse () tienen otras capacidades, como el uso de funciones de devolución de llamada para convertir datos específicos de forma personalizada. Estas opciones son muy útiles para convertir varios datos en objetos JavaScript válidos.

Trabajar con una cadena JSON en PHP

PHP, como JavaScript, tiene funciones integradas para trabajar con cadenas JSON.

Cree una cadena JSON a partir de la variable PHP

La función json_encode () toma una variable PHP y devuelve una cadena JSON que representa el contenido de la variable. Aquí está nuestro ejemplo de una orden escrita en PHP:

12345, "shopperName" \u003d\u003e "Vanya Ivanov", "shopperEmail" \u003d\u003e " [correo electrónico protegido]"," contenido "\u003d\u003e matriz (matriz (" productID "\u003d\u003e 34," productName "\u003d\u003e" Super producto "," cantidad "\u003d\u003e 1), matriz (" productID "\u003d\u003e 56," productName "\u003d\u003e "Producto maravilloso", "cantidad" \u003d\u003e 3)), "orderCompleted" \u003d\u003e true); echo json_encode ($ cart);?\u003e

Este código devuelve exactamente la misma cadena JSON que en el ejemplo de JavaScript:

("orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [correo electrónico protegido]"," contenido ": [(" productID ": 34," productName ":" Super producto "," cantidad ": 1), (" productID ": 56," productName ":" Producto maravilloso "," cantidad ": 3)], "orderCompleted": verdadero)

En una aplicación real, su script PHP enviará esta cadena JSON como parte de la respuesta AJAX al navegador, donde el código JavaScript utiliza el método JSON.parse () para convertirlo de nuevo en una variable para mostrar en la página del usuario.

Puede pasar varios indicadores como segundo argumento a la función json_encode (). Con su ayuda, puede cambiar los principios de codificación del contenido de las variables en una cadena JSON.

Crea una variable a partir de una cadena JSON

El método json_decode () se utiliza para convertir una cadena JSON en una variable PHP. Reemplacemos nuestro ejemplo de JavaScript con el método JSON.parse () con código PHP:

shopperEmail. "
"; echo $ carrito-\u003e contenido-\u003e productName."
"; ?>

En cuanto a JavaScript, este código producirá:

[correo electrónico protegido] Producto milagroso

De forma predeterminada, la función json_decode () devuelve objetos JSON como objetos PHP. Hay objetos PHP genéricos de la clase stdClass. Por lo tanto, usamos -\u003e para acceder a las propiedades del objeto en el ejemplo anterior.

Si desea un objeto JSON como una matriz PHP asociada, debe pasar verdadero como segundo argumento a la función json_decode (). Por ejemplo:

$ carrito \u003d json_decode ($ jsonString, verdadero); echo $ cart ["shopperEmail"]. "
"; echo $ cart [" contenido "] [" productName "]."
";

Este código dará el mismo resultado:

[correo electrónico protegido] Producto milagroso

También puede pasar otros argumentos a json_decode () para especificar la profundidad de la recursividad y cómo manejar números enteros grandes.

Conclusión

Aunque JSON es fácil de entender y usar, es una herramienta muy útil y flexible para transferir datos entre aplicaciones y computadoras, especialmente cuando se usa AJAX. Si está planeando desarrollar una aplicación AJAX, entonces no hay duda de que JSON se convertirá en la herramienta más importante en su taller.

Json (Notación de objetos JavaScript) es un formato de presentación de datos estructurados que se utiliza para transferir datos a través de Internet.

De hecho, el formato JSON es una cadena normal.

Sintaxis JSON

La sintaxis JSON es bastante pequeña, solo incluye una descripción de cómo se ven los datos transmitidos.

Tipos de datos JSON

En JSON, los tipos de datos se pueden dividir en dos categorías: simples y complejos.

  • cuerda - cadenas de texto (generalmente llamadas simplemente - cadenas)
  • número - números
  • booleano - valores lógicos (booleanos)
  • nulo

Los tipos complejos incluyen:

  • objeto - objetos
  • formación - matrices

La sintaxis JSON se toma prestada de JavaScript, por lo que la sintaxis es la misma que en JavaScript para representar valores de tipos simples y complejos.

Valores simples

El ejemplo más simple de código JSON es cualquier valor de un tipo simple:

5 2.3 "¡Hola!" verdadero nulo

En JSON, las cadenas deben incluirse solo entre comillas dobles. El uso de comillas simples da como resultado un error de sintaxis.

Objetos

Un objeto JSON es una lista de cero o más propiedades (nombre: pares de valor) encerradas entre llaves, separadas por comas. Los nombres de las propiedades de los objetos deben ir entre comillas dobles. La falta de comillas dobles o el uso de comillas simples en el nombre de la propiedad es un error. Las propiedades pueden contener valores de cualquier tipo (simple o complejo):

("nombre": "Gomer", "edad": 40, "trabajo": ("lugar": "Planta nuclear", "ubicación": "Springfield"))

Matrices

Una matriz JSON es una lista separada por comas de cero o más valores, entre corchetes. Una matriz puede contener valores de cualquier tipo (simple o complejo):

[("nombre": "Gomer", "edad": 40, "trabajo": ("lugar": "Planta nuclear", "ubicación": "Springfield"), "niños": ["Bart", "Lisa "," Maggie "]), (" nombre ":" Marge "," edad ": 37," trabajo ": (" lugar ":" Casa "," ubicación ":" Springfield ")," niños ": [ "Bart", "Lisa", "Maggie"])]

¿Qué es JSON y de qué es capaz? En este artículo, aprenderá a usar JSON para trabajar con datos fácilmente. También veremos cómo trabajar con JSON usando PHP y JavaScript.

Si ha desarrollado sitios web o aplicaciones web en general, es probable que haya oído hablar de JSON, al menos de pasada. Pero, ¿qué significa exactamente JSON? ¿Qué puede hacer este formato de datos y cómo usarlo?

En este artículo, aprenderemos los conceptos básicos para trabajar con el formato json. Seguiremos los siguientes temas:

  • ¿Qué es el formato JSON?
  • ¿Cómo creo cadenas JSON?
  • Un ejemplo simple de datos JSON
  • Comparación de JSON con XML

¡Empecemos!

¿Qué es el formato JSON?

JSON es una forma sencilla basada en texto de almacenar y transmitir datos estructurados. Con la ayuda de una sintaxis simple, puede guardar fácilmente números y cadenas simples, así como matrices y objetos, sin usar más que texto. También puede vincular objetos y matrices, lo que le permite crear estructuras de datos complejas.

Después de crear una cadena JSON, se puede enviar fácilmente a cualquier aplicación o computadora, ya que es solo texto.

JSON tiene muchos beneficios:

  • Es compacto
  • Es legible por humanos y legible por computadora
  • Se puede convertir fácilmente a formatos programáticos: valores numéricos, cadenas, formato booleano, valor cero, matrices y matrices asociativas.
  • Casi todos los lenguajes de programación tienen funciones para leer y crear formato de datos json.

Literalmente, la abreviatura JSON significa JavaScript Object Notation. Como se describió anteriormente, este formato se basa en la creación de objetos, algo similar a las matrices asociativas en otros lenguajes de programación.

¿Para qué se utiliza JSON?

Sobre todo, json se usa para intercambiar datos entre javascript y el lado del servidor (php). En otras palabras, para la tecnología ajax. Esto es muy útil cuando está pasando múltiples variables o matrices completas de datos.

Cómo se ve con un ejemplo:

  1. El usuario hace clic en imágenes en miniatura
  2. JavaScript maneja este evento y envía una solicitud ajax al script PHP, pasando el ID de la imagen.
  3. En el servidor, php obtiene la descripción de la imagen, el nombre de la imagen, la dirección de la imagen grande y otra información de la base de datos. Una vez recibido, lo convierte a formato JSON y lo envía de vuelta a la página del usuario.
  4. JavaScript recibe una respuesta JSON, procesa los datos, genera código html y muestra una imagen ampliada con una descripción y otra información.

Así es como se amplía la imagen sin recargar la página en el navegador. Esto es muy conveniente cuando necesitamos recibir datos parciales o transferir una pequeña cantidad de información al servidor.

El jQuery favorito de todos tiene funciones getJSON () y parseJSON () que lo ayudan a trabajar con el formato a través de solicitudes ajax.

¿Cómo creo cadenas JSON?


A continuación, se muestran las reglas básicas para crear cadenas JSON:

  • La cadena JSON contiene tanto una matriz de valores como un objeto (una matriz asociativa con pares de nombre / valor).
  • La matriz debe estar entre corchetes, [y], puede contener una lista de valores separados por comas.
  • Los objetos envueltos con brazos rizados, (y), también contienen pares de nombre / valor separados por coma.
  • Los pares de nombre / valor consisten en el nombre del campo (entre comillas dobles) seguido de dos puntos (:), seguido del valor del campo dado.
  • Los valores de una matriz u objeto pueden ser:
    • Numérico (punto entero o decimal)
    • Cadena (entre comillas dobles)
    • Booleano (verdadero o falso)
    • Otras matrices (entre corchetes [y])
    • Otros objetos (envueltos en moños rizados)
    • Nulo

¡Importante! Si usa comillas dobles en los valores, escape con una barra invertida: \\ ". También puede usar caracteres codificados en hexadecimal, como lo hace en otros lenguajes de programación.

Un ejemplo simple de datos JSON

El siguiente ejemplo muestra cómo puede guardar datos en el "carrito de la compra" de una tienda en línea usando formato JSON:

("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [correo electrónico protegido]"," contenido ": [(" productID ": 34," productName ":" SuperWidget "," cantidad ": 1), (" productID ": 56," productName ":" WonderWidget "," cantidad ": 3) ], "orderCompleted": verdadero)

Analicemos estos datos pieza por pieza:

  1. Al principio y al final, usamos lazos rizados que dejan en claro que se trata de un objeto.
  2. Dentro del objeto, tenemos varios pares de nombre / valor:
  3. "orderID": 12345 - campo llamado orderId y valor 12345
  4. "shopperName": "John Smith" - campo llamado shopperName y valor John Smith
  5. " shopperEmail ":"[correo electrónico protegido] ejemplo.com " - Al igual que en el campo anterior, aquí se almacena el correo electrónico del cliente.
  6. "contenido": [...] - un campo denominado contenido cuyo valor es una matriz.
  7. "orderCompleted": verdadero - un campo llamado orderCompleted, cuyo valor es verdadero
  8. Dentro de la matriz de contenido, tenemos dos objetos que muestran el contenido del carrito. Cada objeto de producto tiene tres propiedades: productID, productName, amount.

Finalmente, dado que JSON es idéntico a los objetos JavaScript, puede tomar fácilmente este ejemplo y crear un objeto JavaScript a partir de él:

Comparación de JSON con XML

En la mayoría de los casos, pensará en JSON como una alternativa a XML, al menos para aplicaciones web. Concepto de Ajax, originalmente usa XML para intercambiar datos entre el servidor y el navegador, pero en los últimos años JSON se ha vuelto más popular para transferir datos ajax.

Si bien XML es una tecnología probada y probada que utilizan muchas aplicaciones, la ventaja del formato JSON es que es más compacto y más fácil de escribir y leer.

Aquí está el ejemplo JSON anterior, solo reescrito en formato XML:

orderID 12345 shopperName John Smith shopperEmail [email protected] contents productID 34 productName SuperWidget quantity 1 productID 56 productName WonderWidget quantity 3 pedido completado cierto

Como puede ver, es varias veces más largo que JSON. De hecho, este ejemplo tiene 1128 caracteres, mientras que la versión JSON solo tiene 323 caracteres. Además, la versión XML es más difícil de leer.

Naturalmente, no se puede juzgar por un solo ejemplo, pero incluso pequeñas cantidades de información ocupan menos espacio en formato JSON que en XML.

¿Cómo trabajar con JSON a través de PHP y JS?

Entonces llegamos a la parte más interesante: el lado práctico del formato JSON. Primero, rindamos homenaje a JavaScript, luego veremos cómo puede manipular JSON a través de PHP.

Crear y leer formato JSON usando JavaScript


Aunque el formato JSON es simple, es difícil escribirlo manualmente al desarrollar aplicaciones web. Además, a menudo necesita convertir cadenas JSON en variables y luego usarlas en su código.

Afortunadamente, muchos lenguajes de programación proporcionan herramientas para trabajar con cadenas JSON. La idea principal de la cual:

CriaturaCadenas JSON, comienza con variables que contienen algunos valores, luego los pasa a través de una función que convierte los datos en una cadena JSON.

LeyendoCadenas JSON, comienza con una cadena JSON que contiene datos específicos, pasa la cadena a través de una función que crea variables que contienen los datos.

Veamos cómo se hace esto en JavaScript.

Cree una cadena JSON a partir de una variable de JavaScript

JavaScript tiene un método incorporado, JSON.stringify (), que toma una variable de JavaScript y devuelve una cadena json que representa el contenido de la variable. Por ejemplo, usemos el objeto creado anteriormente, conviértalo en una cadena JSON.

Esto es lo que se mostrará:

("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [correo electrónico protegido]"," contenido ": [(" productID ": 34," productName ":" SuperWidget "," cantidad ": 1), (" productID ": 56," productName ":" WonderWidget "," cantidad ": 3) ], "orderCompleted": verdadero)

Tenga en cuenta que JSON.stringify () genera cadenas JSON sin espacios. Difícil de leer, pero más compacto, lo que es importante a la hora de transferir datos.

Cree una variable de JavaScript a partir de una cadena JSON

Hay varias formas de analizar cadenas JSON, la más aceptable y segura es el método JSON.parse (). Acepta una cadena JSON y devuelve un objeto o matriz JavaScript que contiene datos JSON. He aquí un ejemplo:

Aquí hemos creado una variable, jsonString, que contiene la cadena JSON de los ejemplos proporcionados anteriormente. Luego pasamos esta cadena a través de JSON.parse () para crear un objeto que contiene datos JSON que se almacenan en la variable carrito. Finalmente, verificamos la disponibilidad de datos y mostramos cierta información usando la ventana modal de alerta.

Se mostrará la siguiente información:

En una aplicación web real, su código JavaScript debe aceptar una cadena JSON como respuesta del servidor (después de enviar una solicitud AJAX), luego analizar la cadena y mostrar datos sobre el contenido del carrito al usuario.

Crear y leer formato JSON con PHP


PHP, como JavaScript, tiene funciones para convertir variables a formato JSON y viceversa. Echemos un vistazo a ellos.

Generando una cadena JSON a partir de una variable PHP

Json_encode () toma una variable PHP y devuelve una cadena JSON que representa los datos de la variable. Aquí está nuestro ejemplo de una "canasta" escrita en PHP:

12345, "shopperName" \u003d\u003e "John Smith", "shopperEmail" \u003d\u003e " [correo electrónico protegido]"," contenido "\u003d\u003e matriz (matriz (" productID "\u003d\u003e 34," productName "\u003d\u003e" SuperWidget "," cantidad "\u003d\u003e 1), matriz (" productID "\u003d\u003e 56," productName "\u003d\u003e" WonderWidget "," cantidad "\u003d\u003e 3))," orderCompleted "\u003d\u003e true); echo json_encode ($ cart);?\u003e

Este código genera exactamente el mismo resultado que el ejemplo de JavaScript: una cadena JSON válida que representa el contenido de las variables:

("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [correo electrónico protegido]"," contenido ": [(" productID ": 34," productName ":" SuperWidget "," cantidad ": 1), (" productID ": 56," productName ":" WonderWidget "," cantidad ": 3) ], "orderCompleted": verdadero)

En realidad, su script PHP debería enviar una cadena JSON como respuesta a una solicitud AJAX, donde JavaScript usará JSON.parse () para convertir la cadena en variables.

En la función json_encode (), puede especificar parámetros adicionales que le permitan convertir algunos caracteres a hexadecimal.

Creando una variable PHP a partir de una cadena JSON

Similar a lo anterior, hay una función json_decode () que le permite decodificar cadenas JSON y poner el contenido en variables.

shopperEmail. "
"; echo $ carrito-\u003e contenido-\u003e productName."
"; ?>

Al igual que con JavaScript, este código generará lo siguiente:

[correo electrónico protegido] WonderWidget

De forma predeterminada, json_decode () devuelve objetos JSON como objetos PHP. De manera similar a la sintaxis familiar, usamos -\u003e para acceder a las propiedades del objeto.

Si en el futuro desea utilizar los datos en forma de una matriz asociativa, simplemente pase los segundos parámetros verdaderos a la función json_decode (). He aquí un ejemplo:

$ carrito \u003d json_decode ($ jsonString, verdadero); echo $ cart ["shopperEmail"]. "
"; echo $ cart [" contenido "] [" productName "]."
";

Esto genera el mismo resultado:

[correo electrónico protegido] WonderWidget

Además, se pueden pasar argumentos adicionales a la función json_decode () para determinar el procesamiento de números grandes y recursividad.

En conclusión sobre el formato JSON

Si vas a crear una aplicación web utilizando tecnología Ajax, sin duda utiliza el formato JSON para intercambiar datos entre el servidor y el navegador.


Anuncio

El formato de archivo del sitio web JSON

Los archivos JSON se utilizan para almacenar estructuras de matrices simples de datos utilizando un formato de texto legible por humanos. Inicialmente, los archivos JSON estaban estrechamente relacionados con el lenguaje de programación JavaScript, pero debido a que este formato actualmente admite una gran cantidad de API de programación, se puede considerar como un formato que no está vinculado a ningún lenguaje de programación. Esta alternativa a XML es la más utilizada por las aplicaciones web Ajax.

Detalles técnicos para archivos JSON

Los archivos JSON se utilizan como archivos para el intercambio de datos. Este intercambio ocurre a menudo entre computadoras conectadas a Internet. Por lo tanto, es muy raro que los archivos JSON se guarden en el disco duro de una computadora. Sin embargo, algunas aplicaciones todavía utilizan este formato. Por ejemplo, los datos del perfil de Google+ se guardan y cargan en formato JSON, y el navegador web Mozilla Firefox usa este formato para almacenar marcadores respaldados.

Más información sobre el formato JSON



Extensión de archivo .json
Categoría de archivo
Archivo de ejemplo (0,57 KiB)
Programas relacionados Bloc de notas de Microsoft
Microsoft WordPad
Bloc de notas ++
Mozilla Firefox