Zastosowanie notacji JSON w jQuery i PHP

jQuery, PHP
URL:
Technologia:

JSON to przydatny format wymiany danych w programowaniu aplikacji opartych głównie o model AJAX, ale nie tylko. Typ MIME dla formatu JSON to application/json.

Korzystając z jQuery format ten musimy stosować w przypadku wymiany danych między aplikacjami umieszczonymi pod różnymi domenami. Powód ? względy bezpieczeństwa ;)

jQuery

$.getJSON(

„http://inna-domena.frodo.loc/jsonsearch.php?jsoncallback=?”,

function(data) {

$.each(data, function() {

console.log(this);

}

}

);

Jak to działa ? Wywołanie funkcji $.getJSON następuje z 2 parametrami. Pierwszy to adres URL, a drugi to funkcja, w której następuje obsługa pobranych danych. Dane przekazywane są do zmiennej podanej jako parametr tej funkcji (w tym przypadku ‘data’). Zwrócone dane mogą być w postaci tablicy lub obiektu.

W adresie url wymagane jest określenie parametru, który identyfikuje ‘legalność’ połączenia (w moim przypadku jest to jsoncallback=?, ale może być to dowolna nazwa np. kod=?). Wartość tego parametru musi zostać zwrócona na początku wyniku (przed danymi) przez serwer.

Poniższy przykład realizuje tę funkcjonalność:

PHP5

$data = array (array('katarzyna','miaskowska'), array('daniel','czestki'));

$JSData=json_encode($data);

echo $_GET[‚jsoncallback’] . ‘(‘ . $JSData . ‘);’;

Funkcje JSON w PHP4.

Funkcje JSON są dostępne w PHP5 i to dopiero od wersji 5.2.0. Co można z tym fantem zrobić ? Rozwiązanie przynosi klasa stworzona przez Michała Migurskiego oraz poniższy kod:

<?php

include ( „JSON.php”);

if (!function_exists ( „json_encode ‘)) {

function json_encode ($data) {

$json = new Services_JSON ( ) ;

return ( $json -> encode ( $data ) ) ;

}

if (!function_exists(‘json_decode’)) {

function json_decode($data, $output_mode=false) {

$param = $output_mode ? 16:null;

$json = new Services_JSON($param);

return( $json->decode($data));

}

}

Kod jest zaczerpnięty z tej strony wraz z poprawkami podanymi w komentarzu.