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)
}