Generar JSON desde una tabla en MYSQL

(1/1)

Brian1511:
Hola a todos un cordial saludo, pues intento generar un archivo JSON desde una tabla en MYSQL.

Mi problema es que en una de las columnas hay otro JSON que necesito extraer pero este me lo devuelve como texto y no funciona el json_decode();

Alguien que me pueda ayudar, este es mi codigo:

Código
// Crear la conexión
$conn = new mysqli($servername, $username, $password, $dbname);
 
// Verificar la conexión
if ($conn->connect_error) {
   die("Conexión fallida: " . $conn->connect_error);
}
 
function getTableDataAsJSON($tableName, $connection) {
   // Eliminar caracteres extraños y convertir a utf8mb4_unicode_ci
   mysqli_set_charset($connection, "utf8mb4");
   mysqli_query($connection, "SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'");
 
   // Obtener los datos de la tabla
   $result = mysqli_query($connection, "SELECT * FROM " . $tableName);
 
   // Crear un array con los datos
   $tableData = array();
   while ($row = mysqli_fetch_assoc($result)) {
       // Si la fila tiene una columna llamada "json", codificar el valor como JSON
       if (array_key_exists('json', $row)) {
           //$string = substr($row['json'],1);
           //$string = substr($row['json'],0,-1);
 
           $row['json'] = json_decode($row['json'], JSON_UNESCAPED_SLASHES);;
           //echo $row['json'];
       }
       // Remover las barras invertidas innecesarias
       $row = array_map(function($value) {
           return stripslashes($value);
       }, $row);
       $tableData[] = $row;
   }
 
   // Convertir el array a JSON sin barras invertidas adicionales
   $json = json_encode($tableData, JSON_UNESCAPED_SLASHES);
 
   // Devolver el JSON
   return stripslashes($json);
}
 
echo getTableDataAsJson("incentives",$conn);
 

Navegación

[0] Índice de Mensajes