JSON von PHP an JavaScript zurückgeben?
Ich habe ein PHP-Skript, das über jQuery AJAX aufgerufen wird. Ich möchte, dass das PHP-Skript die Daten im JSON-Format an das JavaScript zurückgibt. Hier ist der Pseudocode im PHP-Skript:
$json = "{";
foreach($result as $addr)
{
foreach($addr as $line)
{
$json .= $line . "\n";
}
$json .= "\n\n";
}
$json .= "}";
Im Grunde brauche ich, dass die Ergebnisse der beiden for-Schleifen in $json eingefügt werden.
Antwort #1
Php hat eine eingebaute JSON-Serialisierungsfunktion.
json_encode
json_kodieren
Bitte verwenden Sie das, wenn Sie können, und leiden Sie nicht am „Nicht von uns erfunden“-Syndrom.
Antwort #2
Hier sind ein paar Dinge, die in den vorherigen Antworten fehlen:
Setzen Sie den Header in Ihrem PHP:
header('Content-type: application/json'); echo json_encode($array);json_encode()kann ein JavaScript-Array anstelle eines JavaScript-Objekts zurückgeben, siehe:
JSON von einem PHP-Skript zurückgeben
Dies könnte in einigen Fällen wichtig sein zu wissen, da Arrays und Objekte nicht dasselbe sind.
Antwort #3
Es gibt einen JSON-Abschnitt in der PHP-Dokumentation. Sie benötigen jedoch PHP 5.2.0.
Ab PHP 5.2.0 ist die JSON-Erweiterung standardmäßig in PHP gebündelt und kompiliert.
Wenn Sie es nicht tun, hier ist die PECL-Bibliothek, die Sie installieren können.
<?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}
?>
Antwort #4
Normalerweise wären Sie auch daran interessiert, auf der empfangenden Seite eine gewisse Struktur in Ihren Daten zu haben:
json_encode($result)
Dies wird auch die Array-Schlüssel beibehalten.
Denken Sie daran, dass json_encode nur mit UTF-8-codierten Daten funktioniert.
