Buscando una explicación en lugar de una respuesta aquí :)
Tengo este script php que se llama con AJAX de jquery
$query = 'SELECT MONTH(PRSD#) as "Monat", CAST(AVG(GASVBR) as DECIMAL(10,3)) as "Gas", CAST(AVG(OLVBR) as DECIMAL(10, 3)) as "Öl", CAST(AVG(STROVBR) as DECIMAL(10,3)) as "Strom" FROM swind.gwenergy GROUP BY YEAR(PRSD#), MONTH(PRSD#) ORDER BY MONTH(PRSD#)'; $dbReturn = $database->execute($query, array()); $jsonArray = array(); while ($row = db2_fetch_assoc($dbReturn)) {´ echo json_encode($jsonArray); }Cuando llamo al lado JS de las cosas:
let parsedData = JSON.parse(jsonData);
Me devuelven con esto:
{Monat: 2, Gas: '13750.607', Öl: '1447.432', Strom: '3901.051'}
¿Cómo es que el valor de Monat no está entre comillas?
Pensé que tal vez porque $query en el script php devolvía DECIMAL(10,3) pero cuando lo reemplacé con FLOOR(... el JSON.parse todavía envolvió el valor entre comillas.
¿Está esto relacionado con la respuesta de $query o es una acción JSON.parse ?
Esperamos escuchar otras ideas :) ¡Gracias! -Boogabooga
Me he enfrentado a un problema similar. Puede comprobar el tipo de datos en PHP con gettype()
Tenga en cuenta que desde PHP 5.3.3, hay un indicador para la conversión automática de números numéricos cuando se usa json_encode.
echo json_encode( $jsonArray, JSON_NUMERIC_CHECK );
Esto debería hacer el trabajo por ti.