Práce s formátem JSON

Nette\Utils\Json je statická třída s užitečnými funkcemi pro práci s formátem JSON. Ošetřuje chyby různých verzí PHP a při chybě vyhazuje výjimky.

Použití

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

Vrací JSON reprezentaci předané hodnoty $value. Flag může být Json::PRETTY, který umí JSON naformátovat pro snažší čtení a přehlednost.

use Nette\Utils\Json;

Json::encode($value); // Vrací JSON reprezentaci hodnoty $value
Json::encode($value, Json::PRETTY); // Vrací naformátovanou JSON reprezentaci hodnoty $value

Při chybě vyhazuje volání funkce encode() 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

Převede daný JSON do objektu nebo pole. Flag může být Json::FORCE_ARRAY, který vynutí vrácení pole namísto objektu.

Json::decode('{"variable": true}'); // Vrací objekt typu stdClass s atributem $variable
Json::decode('{"variable": true}', Json::FORCE_ARRAY); // Vrací pole s klíčem "variable" a hodnotou true

Při chybě vyhazuje volání funkce decode() výjimku Nette\Utils\JsonException.

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

MVC – Presenter

Jak odeslat JSON z presenteru? Lze k tomu použít metodu $this->sendJson($data), kterou můžeme zavolat třeba v metodě action**().

Zavoláním sendJson() dojde k okamžitému ukončení zpracování presenteru. Více informací v popisu životního cyklu presenteru.