Przygotowywanie danych w formacie JSON przy pomocy PHP
Tutoriale 2 sierpień 2007Biblioteka Ext często-gęsto wykorzystuje format JSON np. do pobierania danych do grida. Jak podaje Wikipedia “JSON (wymawiane jak imię “Jason” — jā’sən), to skrót od “JavaScript Object Notation”. Jest to lekki format wymiany danych komputerowych. JSON ma tą przewagę nad formatem XML, że może być przetworzony w języku JavaScript w łatwy sposób z wykorzystaniem wbudowanej funkcji eval() tego języka.
Pomimo nazwy JSON jest niezależnym od konkretnego języka tekstowym formatem danych. Wiele języków programowania, w tym Perl, C, Python wspierają ten format danych poprzez dodatkowe pakiety bądź biblioteki. Wśród tych języków programowania są ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, REBOL oraz Ruby”.
Można oczywiście samodzielnie przygotowywać po stronie serwera skrypty, które będą nam generowały dane w potrzebnej strukturze, ale po co wyważać otwarte drzwi? Użytkownicy PHP mają tu w zasadzie dwie możliwości zależnie od wersji PHP, na której pracują.
PHP 5.2 i wyżej
W PHP 5.2 rozszerzenie JSON jest standardowo zaimplementowane więc sprawa jest na dzień dobry załatwiona - wystarczy użyć funkcji json_encode():
$polaczenie = mysql_pconnect("serwer", "login", "haslo") or die("Nie można nawiązać połączenia!");
mysql_select_db("baza") or die("Nie można wybrać bazy!");
$dane = array();
$res= mysql_query("SELECT id, imie, nazwisko, telefon FROM notatnik");
while($obj = mysql_fetch_object($rs)) { $dane[] = $obj; }
echo '{"znajomi":'.json_encode($dane).'}';
PHP poniżej wersji 5.2
Tu jest trochę trudniej, ale też nie ma tragedii, o ile mamy dostęp do repozytorium PEAR. Wykorzystamy to rozszerzenie: http://pear.php.net/pepr/pepr-proposal-show.php?id=198 (polskiej produkcji! autorem jest Michal Migurski). Cała różnica w skrypcie to dopisanie dwóch linijek kodu na początku i zmiana wywołania funkcji (metody) kodującej dane do formatu JSON:
include_once('JSON.php');
$json = new Services_JSON();
$polaczenie = mysql_pconnect("serwer", "login", "haslo") or die("Nie można nawiązać połączenia!");
mysql_select_db("baza") or die("Nie można wybrać bazy!");
$dane = array();
$res= mysql_query("SELECT id, imie, nazwisko, telefon FROM notatnik");
while($obj = mysql_fetch_object($rs)) { $dane[] = $obj; }
echo '{"znajomi":'.$json->encode($dane).'}';
JSON na Windowsach
Tutaj to już bułka z masłem. Pobierz plik http://pecl4win.php.net/ext.php/php_json.dll i wgraj go katalogu z rozszerzeniami PHP. Następnie w pliku php.ini dodaj wpis
extension=php_json.dll
Na koniec zrestartuj serwer.
materiał opracowany na podstawie: http://extjs.com/learn/Tutorial:Creating_JSON_Data_in_PHP
Jeden komentarz do “Przygotowywanie danych w formacie JSON przy pomocy PHP”
Zostaw swój komentarz
Musisz być zalogowany aby móc pisać komentarze.
13 sierpień 2008 at 21:52
W przykładach jest mały błąd (4 linia 1 skrypt i 6 linia 2 skrypt) zamiast $res powinno być $rs.
Poza tym fajny tekst.
Pozdrawiam