Cómo convertir filas de MySQL a formato JSON en PHP

En este tutorial veremos un sencillo, útil y corto snippet de código para convertir filas de MySQL a formato JSON utilizando PHP. JSON es un formato de intercambio de datos para aplicaciones web/móvil. Sus datos pueden convertir fácilmente en datos de texto en formato legible por humanos. JSON es un formato de intercambio de datos independiente del lenguaje. También puedes comprobar si tu formato JSON es correcto utilizando una herramienta de validación llamada JSON Lint. Ah, y funciona con todo tipo de idiomas. ¿Todo claro? Pues vamos a convertir las filas de nuevas BD a formato JSON.

Aquí tienes la estructura y los datos de base de datos que vamos a utilizar en este tutorial. Ejecuta la siguiente query de SQL en tu PHPMyAdmin para crear la tabla con los datos de prueba, tal y como puedes ver.

CREATE TABLE IF NOT EXISTS `tbl_users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(25) NOT NULL,
  `last_name` varchar(25) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Dumping data for table `tbl_users`
--

INSERT INTO `tbl_users` (`id`, `first_name`, `last_name`) VALUES
(1, 'John', 'Doe'),
(2, 'Jane', 'Doe'),
(3, 'John', 'Cena'),
(4, 'Dwayne', 'Johnson');

Muy bien, ahora conectaremos con nuestra base de datos en nuestro archivo dbconfig.php mediante extensión PDO. Aquí puedes ver el código (no olvides modificarlo con tus propias credenciales).

$DBhost = "localhost";
 $DBuser = "root";
 $DBpass = "";
 $DBname = "dbjson";
 
 try{
  
  $DBcon = new PDO("mysql:host=$DBhost;dbname=$DBname",$DBuser,$DBpass);
  $DBcon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  
 }catch(PDOException $ex){
  
  die($ex->getMessage());
 }

Extrayendo registros de MySQL

Para convertir los registros de MySQL, lo primero que tenemos que hacer es extraerlos de la tabla tbl_users.

$query = "SELECT * FROM tbl_users";
 
$stmt = $DBcon->prepare($query);
$stmt->execute();

Convertir las filas MySQL a un array

Aquí tienes el código para convertir los resultados de MySQL en un array

$userData = array();

while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
  
      $userData['AllUsers'][] = $row;
 
}

Convertir el array a una cadena JSON

En PHP hay una función llamada json_encode(). Se utiliza para convertir arrays en cadenas JSON. Solamente añade el nombre del array creado antes y ponlo dentro de la función tal que así:

echo json_encode($userData);

Vista de nuestra cadena JSON

Esta la cadena final, después de la conversión. Contiene el elemento raíz llamado AllUsers.

{
    "AllUsers": [
        {
            "id": "1",
            "first_name": "John",
            "last_name": "Doe"
        },
        {
            "id": "2",
            "first_name": "Jane",
            "last_name": "Doe"
        },
        {
            "id": "3",
            "first_name": "John",
            "last_name": "Cena"
        },
        {
            "id": "4",
            "first_name": "Dwayne",
            "last_name": "Johnson"
        }
    ]
}

Código Final

Aquí tienes el código final con todos los códigos que hemos expuesto antes...

require_once 'dbconfig.php';
 
 $query = "SELECT * FROM tbl_users";
 
 $stmt = $DBcon->prepare($query);
 $stmt->execute();
 
 $userData = array();
 
 while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
  
  $userData['AllUsers'][] = $row;
 }
 
 echo json_encode($userData);

Esperamos que les guste, de hecho recientemente he estado trabajando con APIs de JSON Apis, así que he decidido compartir este pequeño snippet de PHP y JSON con vosotros. Y por cierto, no olvidéis seguir visitándonos y, si te ha gustado, compártelo con todos tus compañeros devs.

Fuente: codingcage.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP