17
JSON I – ¿Qué es y para qué sirve JSON? Cuando todos nos iniciamos en el mundo de la programación web llegamos a un punto en el que necesitamos gestionar de forma sencilla y eficaz mucha información. Para los que no os suene el nombre de JSON, enhorabuena porque con esta serie de tutoriales vais a dar un gran paso en vuestro aprendizaje. Los tutoriales se van a dividir en cuatro posts en los que abarcaremos los siguientes temas: 1. ¿Qué es y para qué sirve JSON?. 2. Creación de un JSON a partir de una consulta en MySQL. 3. Gestionar un JSON en PHP . 4. Ejemplo práctico de uso de JSON. Así pues, vamos a empezar a crear nuestro primer tutorial sobre JSON. Lo primero que nos preguntamos es:

Tutorial JSON

Embed Size (px)

Citation preview

Page 1: Tutorial JSON

JSON I – ¿Qué es y para qué sirve JSON?

Cuando todos nos iniciamos en el mundo de la programación web llegamos a un punto en el que necesitamos gestionar de forma sencilla y eficaz mucha información. Para los que no os suene el nombre de JSON, enhorabuena porque con esta serie de tutoriales vais a dar un gran paso en vuestro aprendizaje.

Los tutoriales se van a dividir en cuatro posts en los que abarcaremos los siguientes temas:

1. ¿Qué es y para qué sirve JSON?.2. Creación de un JSON a partir de una consulta en MySQL.

3. Gestionar un JSON en PHP .

4. Ejemplo práctico de uso de JSON.

Así pues, vamos a empezar a crear nuestro primer tutorial sobre JSON. Lo primero que nos preguntamos es:

¿Qué es y para que sirve JSON?

JSON (JavaScript Object Notation) es un formato para el intercambios de datos, básicamente JSON describe los datos con una sintaxis dedicada que se usa para identificar y gestionar los datos. JSON nació como una alternativa a XML, el fácil uso en javascript ha generado un gran numero de seguidores de esta alternativa. Una de las mayores ventajas

Page 2: Tutorial JSON

que tiene el uso de JSON es que puede ser leído por cualquier lenguaje de programación. Por lo tanto, puede ser usado para el intercambio de información entre distintas tecnologías.

Veamos un sencillo ejemplo de JSON:

Imaginemos que tenemos una frutería  y que queremos obtener el nombre y la cantidad de fruta y verdura que tenemos. En un principio vamos a suponer que tenemos lo siguiente:

 - Fruta:

10 manzanas 20 Peras

30 Naranjas

 - Verduras

80 lechugas 15 tomates

50 pepinos

Para empezar, nos tenemos que familiarizar con la sintaxis de Json:

JSON Nombre/Par de Valores

Para asignar a un nombre un valor debemos usar los dos puntos ‘:’ este separador es el equivalente al igual (‘=’) de cualquier lenguaje.

1 "Nombre" : "Geeky Theory"

 

Valores Json

Los tipos de valores que podemos encontrar en Json son los siguientes:

Un número (entero o float) Un string (entre comillas simples)

Un booleano (true o false)

Page 3: Tutorial JSON

Un array (entre corchetes [] )

Un objeto (entre llaves {})

Null

Objetos JSON

Los objetos JSON se identifican entre corchetes, un objeto puede ser en nuestro caso una fruta o una verdura

1 { "NombreFruta":"Manzana" , "Cantidad":20 }

 

Arrays JSON

En un Json puedes incluir arrays, para ellos el contenido del array debe ir entre corchetes []:

1234567

{"Frutas": [{ "NombreFruta":"Manzana" , "cantidad":10 }, { "NombreFruta":"Pera" , "cantidad":20 }, { "NombreFruta":"Naranja" , "cantidad":30 }]}

Una vez explicado el funcionamiento de la sintaxis JSON, vamos a aplicar nuestro ejemplo de la frutería.

Page 4: Tutorial JSON

123456789101112131415161718

{"Fruteria":[  {"Fruta":   [    {"Nombre":"Manzana","Cantidad":10},    {"Nombre":"Pera","Cantidad":20},    {"Nombre":"Naranja","Cantidad":30}   ]  },  {"Verdura":   [    {"Nombre":"Lechuga","Cantidad":80},    {"Nombre":"Tomate","Cantidad":15},    {"Nombre":"Pepino","Cantidad":50}   ]  }]}

Como podemos observar, hemos creado un objeto llamado frutería y, dentro de ese objeto hemos almacenado un array de dos elementos. El primer elemento del array contiene un objeto llamado fruta y el segundo elemento del array contiene otro objeto llamado verdura. Estos objetos a su vez contienen un array cuyo contenido es el nombre y la cantidad de cada fruta o verdura.

Imaginemos que nos gustaría saber la cantidad de manzanas que tenemos. El path de este array sería el siguiente:

1 Path: json['Fruteria'][0]['Fruta'][0]['Cantidad']

Observamos que la cantidad de manzanas se almacena dentro del primer elemento del array que contiene el objeto Frutería, y a su vez dentro del primer elemento del array que contiene el objeto Fruta.

Todo esto parece un poco confuso, pero una vez que se domina veremos que tenemos ante nosotros una gran herramienta de desarrollo.

Existen herramientas online que ayudan a visualizar mejor un JSON. Una de las mejores herramientas que he visto es la página JSON Viewer. Si introducimos nuestro ejemplo observamos lo siguiente:

Page 5: Tutorial JSON

 

Y esto es todo. En lo siguientes tutoriales vamos a ver cómo generar un JSON a partir de una consulta en MySQL, esto nos proporcionará una herramienta útil a la hora de obtener datos de la base de datos.

JSON II – Creación de un JSON a partir de una consulta en MySQL

Page 6: Tutorial JSON

En este segundo tutorial sobre JSON vamos a aprender a generar un JSON a partir de una consulta en MySQL. Este tutorial es el segundo tutorial de una serie de tutoriales sobre JSON. Me gustaría pedir disculpas por haber tardado tanto en hacer esta segunda parte, pero cuando se está de Erasmus en Irlanda el tiempo vuela, y como lo prometido es deuda aquí estamos

Si no has visto el tutorial número I, te recomiendo que lo veas con determinación ya que es la base de JSON. Podéis ver a continuación los enlaces a los demás tutoriales de esta serie.

1. ¿Qué es y para qué sirve JSON?. 2. Creación de un JSON a partir de una consulta en MySQL.

3. Gestionar JSON en PHP.

4. Ejemplo práctico de uso de JSON.

Por lo tanto, sin más rodeos podemos empezar nuestro segundo tutorial de JSON.

Este segundo tutorial de JSON lo vamos a dividir en 3 partes:

Generar una conexión a la base de datos. Obtener un array multidimensional de una consulta.

Generar JSON a partir del array.

Generar una conexión a la base de datos

Page 7: Tutorial JSON

Para todos aquellos que estén familiarizados con las bases de datos se pueden saltar este punto. En caso contrario, prestad atención.

Para generar una consulta en una base de datos primero tenemos que generar una conexión con esta, para hacer esto en PHP podemos usar las funciones que vienen por defecto en PHP5, estas funciones ayudan mucho a la hora de gestionar la información de la base de datos. Una vez realizada la consulta debemos de eliminar la conexión a la base de datos.

Para conectarnos a la base de datos podemos usar  sencilla función implementada por mí:

12345678910

function connectDB(){    $conexion = mysqli_connect("SERVER", "USER", "PASS", "BASEDEDATOS");    if($conexion){        echo 'La conexión de la base de datos se ha hecho satisfactoriamente<br>';    }else{        echo 'Ha sucedido un error inesperado en la conexión de la base de datos<br>';    }        return $conexion;}

Esta función devuelve en una variable la conexión a la base de datos, esta conexión será importante a la hora de realizar la consulta.

Para la desconexión de la base de datos usamos la siguiente función:

12345678910

function disconnectDB($conexion){     $close = mysqli_close($conexion);     if($close){        echo 'La desconexión de la base de datos se ha hecho satisfactoriamente<br>';    }else{        echo 'Ha sucedido un error inesperado en la desconexión de la base de datos<br>';    }     

Page 8: Tutorial JSON

1112

    return $close;}

Esta función devuelve un parámetro booleano indicando si la desconexión a tenido éxito o no.

Obtener un array multidimensional de una consulta

El siguiente paso que debemos seguir es la realización de la consulta. Para realizar la consulta también podemos usar otra sencilla función implementada por mí. Esta función tiene como parámetro de entrada una orden SQL. Para más información sobre sentencias SQL recomiendo que miréis esta página W3School.

12345678910111213141516171819202122232425

function getArraySQL($sql){    //Creamos la conexión con la función anterior    $conexion = connectDB();     //generamos la consulta         mysqli_set_charset($conexion, "utf8"); //formato de datos utf8     if(!$result = mysqli_query($conexion, $sql)) die(); //si la conexión cancelar programa     $rawdata = array(); //creamos un array     //guardamos en un array multidimensional todos los datos de la consulta    $i=0;     while($row = mysqli_fetch_array($result))    {        $rawdata[$i] = $row;        $i++;    }     disconnectDB($conexion); //desconectamos la base de datos     return $rawdata; //devolvemos el array}

Como se puede observar esta función devuelve un array multidimensional, es decir una matriz. Para que entendáis como funciona imaginaos una tabla. donde tenemos columnas y

Page 9: Tutorial JSON

filas; las columnas vienen representadas por los tipos de datos que hemos solicitado a la base de datos, y las filas vienen representadas por el dato en sí.

Pongamos un ejemplo: imaginaos que tenemos una base de datos de una frutería, en una tabla de esta base de datos tenemos 3 columnas, que son id_fruta, nombre_fruta y cantidad. Esta tabla esta llena de datos, para que se vea el ejemplo imaginemos que tenemos la siguiente tabla ejemplo:

id_fruta nombre_fruta cantidad1 Manzana 1002 Platano 1673 Pera 820

Así pues, si pasamos la sentencia SQL que genera esta tabla en nuestra función obtendremos un array multidimensional. Si por ejemplo queremos obtener la cantidad de platanos tan sólo tendriamos que buscar en el array de la siguiente forma:

1 array[1][2];Warning! Los indices de un array empiezan por cero.Para más información ver tutorial - Arrays en PHP-.

Generar JSON a partir del array

Una vez que ya tenemos nuestro array multidimensional tan solo nos queda transformar los datos de nuestro array a un formato JSON. Para ello tenemos la suerte de que PHP nos ayuda en esta tarea, así pues, usaremos la función json_encode($array).

Si hacemos un echo del resultado de esta función nos encontraremos con algo parecido a esto:

1

[{"0":"1","id_fruta":"1","1":"Manzana","nombre_fruta":"Manzana","2":"100","cantidad":"100"},{"0":"2","id_fruta":"2","1":"Platano","nombre_fruta":"Platano","2":"167","cantidad":"167"},{"0":"3","id_fruta":"3","1":"Pera","nombre_fruta":"Pera","2":"820","cantidad":"820"}]

Page 10: Tutorial JSON

Podemos observar más gráficamente este JSON con la herramienta de visualización de JSON llamada JSONviewer.

Un ejemplo completo de este tutorial sería el siguiente, donde tendremos que rellenar las variables que aparecen al inicio del script.

1234567891011121314151617181920212223242526272829303132333435

<?php  $sql = "SQL" //ejemplo frutería: SELECT id_fruta,nombre_fruta,cantidad FROM tabla_fruta; function connectDB(){         $server = "SERVER";        $user = "USER";        $pass = "PASS";        $bd = "BD";     $conexion = mysqli_connect($server, $user, $pass,$bd);         if($conexion){            echo 'La conexion de la base de datos se ha hecho satisfactoriamente<br>';        }else{            echo 'Ha sucedido un error inexperado en la conexion de la base de datos<br>';        }     return $conexion;} function disconnectDB($conexion){     $close = mysqli_close($conexion);         if($close){            echo 'La desconexion de la base de datos se ha hecho satisfactoriamente<br>';        }else{            echo 'Ha sucedido un error inexperado en la desconexion de la base de datos<br>';        }         return $close;

Page 11: Tutorial JSON

3637383940414243444546474849505152535455565758596061626364

} function getArraySQL($sql){    //Creamos la conexión con la función anterior    $conexion = connectDB();     //generamos la consulta         mysqli_set_charset($conexion, "utf8"); //formato de datos utf8     if(!$result = mysqli_query($conexion, $sql)) die(); //si la conexión cancelar programa     $rawdata = array(); //creamos un array     //guardamos en un array multidimensional todos los datos de la consulta    $i=0;     while($row = mysqli_fetch_array($result))    {        $rawdata[$i] = $row;        $i++;    }     disconnectDB($conexion); //desconectamos la base de datos     return $rawdata; //devolvemos el array}         $myArray = getArraySQL($sql);        echo json_encode($myArray);?>

 

Y esto es todo; en el siguiente tutorial vamos a ver cómo obtener y gestionar los datos de un JSON en PHP. Así pues, si os ha gustado el tutorial os pido que lo compartáis en vuestras redes sociales, para que la comunidad de Geeky Theory crezca. También me gustaría motivaros a que colaboréis con nosotros escribiendo vuestros propios tutoriales, reviews o noticias.

Un saludo!!!

Page 12: Tutorial JSON

123

1 Manzana 1002 Plátano 1673 Pera 820

Recorrer y recuperar valores de un objeto JSON con un bucle for.

1234567

for($i=0;$i<count($array);$i++){    $id_fruta = $array[$i]->id_fruta;    $nombre_fruta = $array[$i]->nombre_fruta;    $cantidad = $array[$i]->cantidad;    echo $id_fruta." ".$nombre_fruta." ".$cantidad;    echo "<br>";}

El resultado es el mismo que tiene el apartado anterior

123

1 Manzana 1002 Plátano 1673 Pera 820

 

Bueno y esto es todo, hasta hoy hemos visto los principios básicos de un JSON, hemos creado un JSON a partir de una consulta MySQL y hemos gestionado el JSON creado para obtener los datos. En el siguiente tutorial vamos a recopilar todo lo aprendido mediante un ejemplo práctico completo.