Estoy tratando de generar una cadena JSON usando PHP y MySQL, pero la latitud y la longitud están dando como resultado una cadena con comillas alrededor de los valores. Esto causa un problema cuando intento agregar los marcadores a un mapa de Google.PHP JSON codifica el número de salida como la cadena
Aquí está mi código:
$sql = mysql_query('SELECT * FROM markers WHERE address !=""');
$results = array();
while($row = mysql_fetch_array($sql))
{
$results[] = array(
'latitude' =>$row['lat'],
'longitude' => $row['lng'],
'address' => $row['address'],
'project_ID' => $row['project_ID'],
'marker_id' => $row['marker_id']
);
}
$json = json_encode($results);
echo "{\"markers\":";
echo $json;
echo "}";
Aquí es el resultado esperado:
{"markers":[{"latitude":0.000000,"longitude":0.000000,"address":"2234 2nd Ave, Seattle, WA","project_ID":"7","marker_id":"21"}]}
Aquí está la salida que me estoy haciendo:
{"markers":[{"latitude":"0.000000","longitude":"0.000000","address":"2234 2nd Ave, Seattle, WA","project_ID":"7","marker_id":"21"}]}
Aviso las comillas alrededor de la valores de latitud y longitud
estas constantes JSON_ * son bastante pesadas en los requisitos :) –
Tenga en cuenta que esto solo funciona para PHP> = 5.3. Si necesita admitir versiones anteriores (varios sitios ejecutan PHP 5.2 al momento de escribir esto), la respuesta de @Allen Chak es bastante buena – kakoma
Me ha ahorrado muchísimo tiempo. – Jordy