You are browsing the unmaintained documentation for old Nette 2.3. See documentation for current Nette.

Práce s JSON

Nette\Utils\Json je statická třída s funkcemi pro kódování a dekódování formátu JSON. Ošetřuje zranitelnosti různých verzí PHP a vyhazuje výjimky při chybách.

Instalace:

composer require nette/utils

Všechny příklady předpokládají vytvořený alias:

use Nette\Utils\Json;
use Nette\Utils\JsonException;

Použití

encode(mixed $value, int $flags=0)string

Převádí $value do formátu JSON. Příznak $flag může být Json::PRETTY, který naformátuje JSON pro snažší čtení a přehlednost.

Json::encode($value); // vrací JSON
Json::encode($value, Json::PRETTY); // vrací přehlednější JSON

Při chybě vyhazuje výjimku Nette\Utils\JsonException.

try {
	$json = Json::encode($value);
} catch (Nette\Utils\JsonException $e) {
	// Ošetření výjimky
}

decode(string $json, int $flags=0)mixed

Parsuje JSON do PHP. Příznak $flag může být Json::FORCE_ARRAY, který vynutí vrácení pole místo objektu.

Json::decode('{"variable": TRUE}'); // vrací objekt typu stdClass
Json::decode('{"variable": TRUE}', Json::FORCE_ARRAY); // vrací pole
Json::decode('TRUE'); // vrací TRUE

Při chybě vyhazuje výjimku Nette\Utils\JsonException.

try {
	$value = Json::decode($json);
} catch (Nette\Utils\JsonException $e) {
	// Ošetření výjimky
}

Jak odeslat JSON z presenteru?

Lze k tomu použít metodu $this->sendJson($data), kterou můžeme zavolat třeba v metodě action*(), viz Ukončení presenteru.

Vylepšit tuto stránku