J'ai un script PHP qui est appelé via jQuery AJAX. Je souhaite que le script PHP renvoie les données au format JSON au javascript. Voici le pseudo-code dans le script PHP:
$json = "{";
foreach($result as $addr)
{
foreach($addr as $line)
{
$json .= $line . "\n";
}
$json .= "\n\n";
}
$json .= "}";
En gros, j’ai besoin que les résultats des deux boucles for soient insérés dans $ json.
Php a une fonction de sérialisation JSON intégrée.
json_encode
S'il vous plaît utilisez-le si vous pouvez et ne souffrez pas du syndrome Not Invented Here.
Voici quelques éléments manquants dans les réponses précédentes:
Définissez l'en-tête dans votre PHP:
header('Content-type: application/json');
echo json_encode($array);
json_encode()
peut renvoyer un JavaScript array au lieu de JavaScript object, voir:
Retour du code JSON à partir d'un script PHP
Il peut être important de savoir dans certains cas que les tableaux et les objets ne sont pas identiques.
Il y a une section JSON dans la documentation PHP. Vous aurez cependant besoin de PHP 5.2.0.
Depuis PHP 5.2.0, l'extension JSON est intégrée et compilée dans PHP par défaut.
Sinon, voici la bibliothèque PECL vous pouvez installer.
<?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}
?>
Habituellement, vous voudriez également que vos données soient structurées dans le destinataire:
json_encode($result)
Cela préservera également les clés de la matrice.
Rappelez-vous que json_encode ne fonctionne que sur les données codées en utf8.
Vous pouvez utiliser JSON simple pour PHP . Il envoie les en-têtes vous aider à forger le JSON.
Ça ressemble à :
<?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();
?>
$ msg = "Vous entrez un nom d’utilisateur incorrect OR Mot de passe"; $ responso = json_encode ($ msg);
echo "{\"status\" : \"400\", \"responce\" : \"603\", \"message\" : \"You Enter Wrong Username OR Password\", \"feed\":".str_replace("<p>","",$responso). "}";