Každý javascriptový programátor zřejmě už slyšel tajemnou zkratku JSON. A pokud už předtím měl nepříjemné zkušenosti s XML, má z webových formátů možná posvátný respekt až hrůzu. O tom, že JSON je technologie naopak velmi uživatelsky přívětivá, je následující článek.

JSON je formát dat, který podobně jako XML umožňuje přenášet formátovaná data – pole – z jedné platformy na druhou. Programátory AJAXových aplikací si zkrátka musí získat skvělý způsob, jakým lze poskytovat data z PHP do Javascriptu.

Začínáme

Pro začátek trochu nemilá zpráva pro příznivce konzervativních až zpátečnických hostingů: funkce pro práci s tímto formátem jsou dostupné pouze od verze PHP >= 5.2. Nám ostatním funguje funkce json_encode(). A pokud vás k přechodu na pořádný hosting nepřesvědčí ani to, že váš hoster kašle na bezpečnost, určitě zvládnete tuto funkci implementovat sami na pár řádcích PHP kódu.

Posíláme data z PHP

Funkce json_encode() nedělá než nic jiného, než že vezme jakékoliv (nejlépe asociativní) pole a vytvoří z něj string formátovaný v JSON.
<?php
$r['jmeno']='Pavel';
$r['prijmeni']='Novak';
$r['bydliste']['ulice']='Sokolská';
$r['bydliste']['cp']='666';
$r['bydliste']['mesto']='Strakonice';
echo json_encode($r);

// výstup:
// {"jmeno":"Pavel","prijmeni":"Novak","bydliste":{"ulice":"Sokolovska","cp":"666","mesto":"Strakonice"}}
?>

A teď do Javascriptu tím!

Co je na tom nejzajímavější: Protože se jedná o přímou javascriptovou syntaxi zápisu objektu, Javascript už s takto formátovaným stringem umí pracovat, není třeba řetězec složitě parsovat nebo upravovat!

Stačí jeden eval().


var a= '{"jmeno":"Pavel","prijmeni":"Novak","bydliste":"ulice":"Sokolovska","cp":"666","mesto":"Strakonice"}}';
eval('var obj='+a)
//Zobrazení hodnot
alert(obj['bydliste']['mesto']);
//anebo
alert(obj.bydliste.mesto);

Komentáře

Váš komentář: