PHP a JSON
Co je JSON?
JSON je zkratka pro JavaScript Object Notation a je syntaxí pro ukládání a výměnu dat.
Vzhledem k tomu, že formát JSON je textový formát, lze jej snadno odeslat na server a ze serveru a použít jako datový formát jakýkoli programovací jazyk.
PHP a JSON
PHP má některé vestavěné funkce pro zpracování JSON.
Nejprve se podíváme na následující dvě funkce:
- json_encode()
- json_decode()
PHP – json_encode()
Funkce json_encode() se používá ke kódování hodnoty do formátu JSON.
Příklad
Tento příklad ukazuje, jak zakódovat asociativní pole do objektu JSON:
<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
echo json_encode($age);
?>
Příklad
Tento příklad ukazuje, jak zakódovat indexované pole do pole JSON:
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo json_encode($cars);
?>
PHP – json_decode()
Funkce json_decode() se používá k dekódování objektu JSON na objekt PHP nebo asociativní pole.
Příklad
Tento příklad dekóduje data JSON do objektu PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
var_dump(json_decode($jsonobj));
?>
Funkce json_decode() ve výchozím nastavení vrací objekt. Funkce json_decode() má druhý parametr, a když je nastavena na hodnotu true, objekty JSON se dekódují do asociativních polí.
Příklad
Tento příklad dekóduje data JSON do asociativního pole PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
var_dump(json_decode($jsonobj,
true));
?>
PHP - Přístup k dekódovaným hodnotám
Zde jsou dva příklady, jak získat přístup k dekódovaným hodnotám z objektu a z asociativního pole:
Příklad
Tento příklad ukazuje, jak přistupovat k hodnotám z objektu PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$obj = json_decode($jsonobj);
echo $obj->Peter;
echo $obj->Ben;
echo $obj->Joe;
?>
Příklad
Tento příklad ukazuje, jak získat přístup k hodnotám z asociativního pole PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$arr = json_decode($jsonobj, true);
echo $arr["Peter"];
echo $arr["Ben"];
echo $arr["Joe"];
?>
PHP – opakování hodnot
Hodnoty můžete také procházet smyčkou foreach() :
Příklad
Tento příklad ukazuje, jak procházet hodnotami objektu PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$obj = json_decode($jsonobj);
foreach($obj
as $key => $value) {
echo $key . " => " . $value . "<br>";
}
?>
Příklad
Tento příklad ukazuje, jak procházet hodnoty asociativního pole PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$arr = json_decode($jsonobj, true);
foreach($arr as $key => $value) {
echo $key . " => " . $value
. "<br>";
}
?>