JSON para entender mejor a Composer

JSON para usar Composer

Sobre JSON podría crear una pequeña serie en video, principalmente para hacer un conjunto de ejemplos y de esa manera tener mas claro el panorama.. Lo haré mas adelante, de momento quiero enseñarte COMPOSER y esto es lo necesario para comprender esta tecnología.

Es una introducción a JSON, una forma conveniente de transferir y almacenar datos.


¿Qué es JSON?

Para entender Composer necesitamos entender de forma básica a JSON.

JSON significa (JavaScript Object Notation - Notación de Objetos de JavaScript). Se llamó así porque JavaScript era el único lenguaje que podría utilizar este formato.

Su función principal es la transferencia de datos y lo más interesante de JSON es que termina siendo muy legible, puedes tener mil datos y sabes que es una columna, que es un dato y así… y es mucho menos detallado que XML (de hecho JSON reemplazó a XML).

Dando mas contexto a este formato, te puedo decir que lo usamos comúnmente cuando desde el frontend requerimos algunos datos del backend sin que la página se recargue, por supuesto usando AJAX.

Entender esto te ayuda a leer e intuir como dar formato visual a una colección de datos JSON, imagina obtener todos los tweets de tu cuenta o posts de Facebook y mostrarlos en tu página, estas empresas te enviarán los datos en JSON, así que esto no nada mas te sirve para Composer, te sirve hoy día para todo lo que tenga que ver con transferencia de datos.

Otra ventaja es que puede ser utilizado y analizado por muchos lenguajes, entre ellos PHP que es el que nos compete a nosotros, y de forma adicional, es muy fácil para nosotros leer estos datos. En otras palabras, ligero y de fácil lectura.

Sintaxis JSON

{
    "name": "rimorsoft",
    "description": "Instituto Online de Programación Web",
    "courses": {
        "advanced": ["PHP", "VUEjs"],
        "basic": ["JSON", "HTML"]
    }
}

Puedes ver que es muy legible, y así funcionaria bien para nosotros, sin embargo toma en cuenta que de forma predeterminada JSON se guarda sin ningún espacios ni indentación. Esto hace que sea muy difícil de leer y está bien, mientras menos espacio menos ancho de banda y más velocidad en transferencia, la idea es que la cadena JSON sea lo mas corta posible.

Podemos buscar una herramienta en la Web para embellecer nuestros resultados JSON. Puedes elegir la que desees, porque no es algo de uso diario… Solo escribe en Google “ordenar json” o “formatear json”.

Por otro lado, observa lo siguiente: Crearé un objeto en JavaScript con el JSON del ejemplo anterior…

<script>
var rimorsoft = {
    name: 'rimorsoft',
    description: 'Instituto Online de Programación Web',
    courses: {
        advanced: ['PHP', 'VUEjs'],
        basic: ['JSON', 'HTML']
    }
}
</script>

El primer código es JSON y este segundo es un objeto Javascript, puedes notar todas las similitudes y al mismo tiempo preguntarte ¿Cuál usar?.

La respuesta se haya en que JSON es un formato de transferencia de datos y no un lenguaje de programación. En otras palabras no usa variables ni nada de lo que usa un lenguaje común de programación usa.

JSON es muy similar a un objeto JavaScript y no es casualidad, recuerda que JSON fue creado inicialmente para JavaScript.

Aclaremos un poco mas

  • En JSON y JavaScript los datos están dentro de {…} (dos llaves) y su estructura es clave-valor.
  • Entre otras cosas JSON permite usar como valor un Boolean, String, Array, Null y otros. (Estos son los mas comunes).
  • En JavaScript las claves son variables, por lo tanto no usan las comillas.
  • En ambas tecnologías los pares clave-valor deben separarse con dos puntos (:), y cada conjunto de pares clave-valor deben estar separados por una coma (,).
  • JSON puede tener como valor una cadena y valores tipos numéricos.
  • Los valores en JSON deben estar entre comillas dobles, sin embargo en JavaScript usamos por lo general comillas simples aunque las comillas dobles también servirían.

Los valores numéricos se representan sin comillas. Los Boolean con true y false, los Null simplemente con la palabra null y así, nada cambia en cuanto a la forma estándar de trabajar.

JSON y PHP

Esto es lo mejor, podemos tener en PHP un Array y a la hora de transferir usamos JSON, veamos un ejemplo básico.

<?php
    //Array to JSON
    $data = ['clave' => 'valor'];
    echo json_encode($data);

    //JSON to Array
    $data = json_decode('{"clave":"valor"}');
    echo $data->clave;

Es fácil de entender la idea general, vemos como serializar y cómo deserializar.

Solo usamos los métodos json_encode() y json_decode().

En la parte de JSON to Array vemos que para ver el dato usamos echo $data->clave; y está bien, también podriamos ver la estructura completa usando var_dump($data);.

IMPORTANTE: Esto es así porque el método json_decode() no devuelve un JSON; este usa un objeto stdClass para representar nuestros datos.

Una última nota: JSON no permite comentarios.

Adquiere en preventa y aprovecha un gran descuento TDD en Laravel

Comparte en

Creado por: Venezuela Italo Morales

Profesor de #Laravel y #PHP en Rimorsoft Online

Más información


Spatie/Laravel Permission ¿Cómo agregar campos en la tabla "roles"?

Hola, mi consulta es la siguiente:

Relacioné la tabla "roles" con mi tabla** "empresa**", es decir, en la tabla "roles", tengo el campo "id_empresa", en la vista, están los campos necesarios y el select de la empresa pero al querer guardar los datos, me arroja el siguiente error: ** "The given role or permission should use guard web instead of Empresas. "** No ...

SOFTWARE PARA CONSULTORIOS MEDICOS

Hola Amigos. soy nuevo en el grupo.. me gustaria saber si alguien tiene o tuvo algun proyecto basado en laravel, para consultorios medicos? ...

sincronización de componentes hermanos

un gran saludo a la comunidad rimorsorf... espero de su valiosa ayuda para mi problema que es el siguiente:

tengo dos componentes en el mismo nivel, el primero crea una tabla con una lista de procesos por tramitar y el segundo componente lista en una tabla los procesos que se han asignado para tramitar; cuando en la primera tabla se asigna el proceso este debe desaparecer de...

plantilla blade y vuejs2

buenas noches comunidad, por casualidad alguien sabrá si se puede integrar la plantilla de laravel blade en vuejs2 component??, gracias dee antemano...