Tajuplný JSON kouzla zbavený
Odesláno v September 12, 2008 | Kategorie Apache, Internetové aplikace, Javascript, Programování, webdesign | Leave a Comment
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ář: