JSON mit PHP
In diesem Kapitel wird beschrieben, wie Sie JSON-Objekte mit der Programmiersprache PHP codieren und decodieren. Beginnen wir mit der Vorbereitung der Umgebung, um unsere Programmierung mit PHP für JSON zu starten.
Umgebung
Ab PHP 5.2.0 wird die JSON-Erweiterung standardmäßig gebündelt und in PHP kompiliert.
JSON-Funktionen
Funktion | Bibliotheken |
---|---|
json_encode | Gibt die JSON-Darstellung eines Werts zurück. |
json_decode | Dekodiert eine JSON-Zeichenfolge. |
json_last_error | Gibt den zuletzt aufgetretenen Fehler zurück. |
JSON in PHP codieren (json_encode)
Die PHP-Funktion json_encode () wird zum Codieren von JSON in PHP verwendet. Diese Funktion gibt die JSON-Darstellung eines Werts bei Erfolg oder von FALSE bei Fehlschlag zurück.
Syntax
string json_encode ( $value [, $options = 0 ] )
Parameter
value- Der zu codierende Wert. Diese Funktion funktioniert nur mit UTF-8-codierten Daten.
options - Dieser optionale Wert ist eine Bitmaske, die aus JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT besteht.
Beispiel
Das folgende Beispiel zeigt, wie ein Array mit PHP in JSON konvertiert wird -
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
Während der Ausführung wird das folgende Ergebnis erzielt:
{"a":1,"b":2,"c":3,"d":4,"e":5}
Das folgende Beispiel zeigt, wie die PHP-Objekte in JSON konvertiert werden können -
<?php
class Emp {
public $name = "";
public $hobbies = "";
public $birthdate = "";
}
$e = new Emp();
$e->name = "sachin";
$e->hobbies = "sports";
$e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
$e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));
echo json_encode($e);
?>
Während der Ausführung wird das folgende Ergebnis erzielt:
{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}
JSON in PHP dekodieren (json_decode)
Die PHP-Funktion json_decode () wird zum Dekodieren von JSON in PHP verwendet. Diese Funktion gibt den von json dekodierten Wert an den entsprechenden PHP-Typ zurück.
Syntax
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
Parameter
json_string - Es handelt sich um eine codierte Zeichenfolge, bei der es sich um UTF-8-codierte Daten handeln muss.
assoc - Es handelt sich um einen booleschen Parameter. Wenn TRUE festgelegt ist, werden zurückgegebene Objekte in assoziative Arrays konvertiert.
depth - Dies ist ein ganzzahliger Parameter, der die Rekursionstiefe angibt
options - Es handelt sich um eine ganzzahlige Bitmaske mit JSON-Dekodierung. JSON_BIGINT_AS_STRING wird unterstützt.
Beispiel
Das folgende Beispiel zeigt, wie PHP zum Dekodieren von JSON-Objekten verwendet werden kann.
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
Während der Ausführung wird das folgende Ergebnis angezeigt:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}