Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

json_encode

JSON-Funktionen

    Befehl:
string json_encode ( mixed $value [, int $options = 0 ] )


    Parameter-Liste:
NameBeschreibung
valueDer zu kodierende value. Kann von jedem Typ außer Ressource sein.

Diese Funktion arbeitet nur mit UTF-8-kodierten Daten.
optionBitmaske bestehend 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, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE. Standardmäßig auf 0 gesetzt.

    Beschreibung:
Gibt eine Zeichenkette zurück, die die JSON-Darstellung von value beinhaltet.


    Aktiv in Version:
(PHP 5 >= 5.2.0, PHP 7, PECL json >= 1.2.0)

    Hinweis:
Falls ein Fehler beim kodieren auftritt, kann json_last_error() verwendet werden, um die genaue Ursache des Fehlers festzustellen.

Wenn ein Array kodiert wird werden alle Schlüssel als Strings kodiert und für alle Schlüssel-Wert-Paare explizit angegeben, wenn die Schlüssel keine kontinuierliche aufsteigende Sequenz sind die bei 0 beginnt.

Wie der Referenz JSON-Encoder gibt auch json_encode() einen einfachen Wert (also weder ein Objekt noch ein Array) aus, wenn ein String, Integer, Float oder Boolean als Eingabe für value übergeben wird. Während die meisten Decoder diese Werte als gültiges JSON akzeptieren könnte es einige geben die dies ablehnen, da die Spezifikationen in diesem Punkt mehrdeutig sind.

Um zusammenzufassen: Prüfen Sie immer, ob ihr JSON-Decoder die Ausgabe, die Sie mittels json_encode() erzeugen, verarbeiten kann.

    Siehe auch:
Dekodiert eine JSON-Zeichenkette
 
Gibt den letzten aufgetretenen Fehler zurück
 
Erzeugt eine speicherbare Repräsentation eines Wertes.
 

json_encode() - Beispiel:


Eingabe:
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo json_encode($arr);
?>


Ausgabe:
{"a":1,"b":2,"c":3,"d":4,"e":5}

Beschreibung:
Version Beschreibung
5.6.6 Die JSON_PRESERVE_ZERO_FRACTION option wurde hinzugefügt.
5.5.0 Der Parameter depth wurde hinzugefügt.
5.4.0 JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, und JSON_UNESCAPED_UNICODE für options wurden hinzugefügt.
5.3.3 JSON_NUMERIC_CHECK für options wurde hinzugefügt.
5.3.0 Der optionale Parameter option wurde hinzugefügt.
5.2.1 Unterstützung für JSON-kodierte Grundtypen hinzugefügt.
json_decode() - Beispiel 2: das den Einsatz aller Optionen zeigt


Eingabe:
<?php
$a = array('<foo>',"'bar'",'"baz"','&blong&');

echo "Normal: ", json_encode($a), "\n";
echo "Tags: ",   json_encode($a,JSON_HEX_TAG), "\n";
echo "Apos: ",   json_encode($a,JSON_HEX_APOS), "\n";
echo "Quot: ",   json_encode($a,JSON_HEX_QUOT), "\n";
echo "Amp: ",    json_encode($a,JSON_HEX_AMP), "\n";
echo "All: ",    json_encode($a,JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP), "\n\n";

$b = array();

echo "Ausgabe eines leeren Arrays als Array: ", json_encode($b), "\n";
echo "Ausgabe eines leeren Arrays als Objekt: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n";

$c = array(array(1,2,3));

echo "Ausgabe eines nichtassoziativen Arrays als Array: ", json_encode($c), "\n";
echo "Ausgabe eines nichtassoziativen Arrays als Objekt: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";
?>


Ausgabe:
Normal: ["<foo>","'bar'","\"baz\"","&blong&"]
Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&"]
Apos: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&"]
Quot: ["<foo>","'bar'","\u0022baz\u0022","&blong&"]
Amp: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026"]
All: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026"]

Ausgabe eines leeren Arrays als Array: []
Ausgabe eines leeren Arrays als Objekt: {}

Ausgabe eines nichtassoziativen Arrays als Array: [[1,2,3]]
Ausgabe eines nichtassoziativen Arrays als Objekt: {"0":{"0":1,"1":2,"2":3}}

Beschreibung:
Version Beschreibung
5.6.6 Die JSON_PRESERVE_ZERO_FRACTION option wurde hinzugefügt.
5.5.0 Der Parameter depth wurde hinzugefügt.
5.4.0 JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, und JSON_UNESCAPED_UNICODE für options wurden hinzugefügt.
5.3.3 JSON_NUMERIC_CHECK für options wurde hinzugefügt.
5.3.0 Der optionale Parameter option wurde hinzugefügt.
5.2.1 Unterstützung für JSON-kodierte Grundtypen hinzugefügt.
json_decode() - Beispiel 3: JSON_NUMERIC_CHECK-Option-Beispiel


Eingabe:
<?php
echo "Zeichenketten, die Zahlen repräsentieren, die automatisch in Zahlen gewandelt wurden".PHP_EOL;
$numbers = array('+123123', '-123123', '1.2e3', '0.00001');
var_dump(
 $numbers,
 json_encode($numbers, JSON_NUMERIC_CHECK)
);
echo "Zeichenketten, die unsachgemäss formartierte Zahlen enthalten".PHP_EOL;
$strings = array('+a33123456789', 'a123');
var_dump(
 $strings,
 json_encode($strings, JSON_NUMERIC_CHECK)
);
?>


Ausgabe:
Zeichenketten, die Zahlen repr�sentieren, die automatisch in Zahlen gewandelt wurden
array(4) {
  [0]=>
  string(7) "+123123"
  [1]=>
  string(7) "-123123"
  [2]=>
  string(5) "1.2e3"
  [3]=>
  string(7) "0.00001"
}
string(28) "[123123,-123123,1200,1.0e-5]"
Zeichenketten, die unsachgem�ss formartierte Zahlen enthalten
array(2) {
  [0]=>
  string(13) "+a33123456789"
  [1]=>
  string(4) "a123"
}
string(24) "["+a33123456789","a123"]"

Beschreibung:
Version Beschreibung
5.6.6 Die JSON_PRESERVE_ZERO_FRACTION option wurde hinzugefügt.
5.5.0 Der Parameter depth wurde hinzugefügt.
5.4.0 JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, und JSON_UNESCAPED_UNICODE für options wurden hinzugefügt.
5.3.3 JSON_NUMERIC_CHECK für options wurde hinzugefügt.
5.3.0 Der optionale Parameter option wurde hinzugefügt.
5.2.1 Unterstützung für JSON-kodierte Grundtypen hinzugefügt.
json_decode() - Beispiel 4: Beispiel f�r sequentielle und nicht sequentielle Arrays


Eingabe:
<?php
echo "Sequentielles Array".PHP_EOL;
$sequential = array("foo", "bar", "baz", "blong");
var_dump(
 $sequential,
 json_encode($sequential)
);

echo PHP_EOL."Nicht sequentielles Array".PHP_EOL;
$nonsequential = array(1=>"foo", 2=>"bar", 3=>"baz", 4=>"blong");
var_dump(
 $nonsequential,
 json_encode($nonsequential)
);

echo PHP_EOL."Sequentielles Array mit einem entfernten Schlüssel".PHP_EOL;
unset($sequential[1]);
var_dump(
 $sequential,
 json_encode($sequential)
);
?>


Ausgabe:
Sequentielles Array
array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"

Nicht sequentielles Array
array(4) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(3) "baz"
  [4]=>
  string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"

Sequentielles Array mit einem entfernten Schl�ssel
array(3) {
  [0]=>
  string(3) "foo"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"

Beschreibung:
Version Beschreibung
5.6.6 Die JSON_PRESERVE_ZERO_FRACTION option wurde hinzugefügt.
5.5.0 Der Parameter depth wurde hinzugefügt.
5.4.0 JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, und JSON_UNESCAPED_UNICODE für options wurden hinzugefügt.
5.3.3 JSON_NUMERIC_CHECK für options wurde hinzugefügt.
5.3.0 Der optionale Parameter option wurde hinzugefügt.
5.2.1 Unterstützung für JSON-kodierte Grundtypen hinzugefügt.
json_decode() - Beispiel 5: JSON_PRESERVE_ZERO_FRACTION-Option-Beispiel


Eingabe:
<?php
var_dump(json_encode(12.0, JSON_PRESERVE_ZERO_FRACTION));
var_dump(json_encode(12.0));
?>


Ausgabe:
string(4) "12.0"
string(2) "12"

Beschreibung:
Version Beschreibung
5.6.6 Die JSON_PRESERVE_ZERO_FRACTION option wurde hinzugefügt.
5.5.0 Der Parameter depth wurde hinzugefügt.
5.4.0 JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, und JSON_UNESCAPED_UNICODE für options wurden hinzugefügt.
5.3.3 JSON_NUMERIC_CHECK für options wurde hinzugefügt.
5.3.0 Der optionale Parameter option wurde hinzugefügt.
5.2.1 Unterstützung für JSON-kodierte Grundtypen hinzugefügt.
JSON-Funktionen