json_encode - print json php
¿Devolviendo JSON de PHP a JavaScript? (5)
Tengo un script PHP que se llama a través de jQuery AJAX. Quiero que el script PHP devuelva los datos en formato JSON al javascript. Aquí está el pseudo código en el script PHP:
$json = "{";
foreach($result as $addr)
{
foreach($addr as $line)
{
$json .= $line . "/n";
}
$json .= "/n/n";
}
$json .= "}";
Básicamente, necesito que se inserten los resultados de los dos bucles en $ json.
Aquí hay algunas cosas que faltan en las respuestas anteriores:
Establecer encabezado en tu PHP:
header(''Content-type: application/json''); echo json_encode($array);
json_encode()
puede devolver una matriz de JavaScript en lugar de un objeto de JavaScript, ver:
Devolver JSON desde un script PHP
Esto podría ser importante saber en algunos casos, ya que las matrices y los objetos no son lo mismo.
Hay una sección JSON en la documentación de PHP. Necesitarás PHP 5.2.0 sin embargo.
A partir de PHP 5.2.0, la extensión JSON se incluye y compila en PHP de forma predeterminada.
Si no lo hace, aquí está la biblioteca PECL que puede instalar.
<?php
$arr = array (''a''=>1,''b''=>2,''c''=>3,''d''=>4,''e''=>5);
echo json_encode($arr); // {"a":1,"b":2,"c":3,"d":4,"e":5}
?>
Php tiene una función incorporada de serialización JSON.
json_encode
Por favor use eso si puede y no sufre el síndrome de No Inventado Aquí.
Por lo general, le interesaría también tener cierta estructura para sus datos en el extremo receptor:
json_encode($result)
Esto conservará las claves de la matriz también.
Recuerde que json_encode solo funciona en datos con codificación utf8.
Puede usar Simple JSON para PHP . Envía los encabezados que te ayudan a forjar el JSON.
Parece que :
<?php
// Include the json class
include(''includes/json.php'');
// Then create the PHP-Json Object to suits your needs
// Set a variable ; var name = {}
$Json = new json(''var'', ''name'');
// Fire a callback ; callback({});
$Json = new json(''callback'', ''name'');
// Just send a raw JSON ; {}
$Json = new json();
// Build data
$object = new stdClass();
$object->test = ''OK'';
$arraytest = array(''1'',''2'',''3'');
$jsonOnly = ''{"Hello" : "darling"}'';
// Add some content
$Json->add(''width'', ''565px'');
$Json->add(''You are logged IN'');
$Json->add(''An_Object'', $object);
$Json->add("An_Array",$arraytest);
$Json->add("A_Json",$jsonOnly);
// Finally, send the JSON.
$Json->send();
?>