Il nuovo mondo web 2.0 si sta sempre più orientando ai servizi ed è per questo che si è sentita l’esigenza di un nuovo formato adatto allo scambio di informazioni tra client e server: JSON.
Perchè JavaScript Object Notation?
Il successo di JSON è proprio derivato dal fatto che è un formato semplice e basta un eval() JavaScript per poterlo interpertare.
E’ utilizzato spesso come alternativa a XML in ajax, infatti mentre XML è un linguaggio di marcatura delle proprietà, JSON è un formato di interscambio di dati.
Come usare JSON con PHP?
Per chi usa versioni inferiori a PHP 5.2.0 esiste una fantastica classe PEAR (basta scaricarla e includerla), mentre per chi usa versioni superiori a PHP 5.2.0 è possibile utilizzare direttamente le funzioni di libreria PHP.
La classe PEAR di cui vi parlo si può scaricare direttamente da qui: http://pear.php.net/pepr/pepr-proposal-show.php?id=198
Utilizzo
Di seguito inserisco due semplicissimi stralci di codice per mostrarvi le basi di JSON e le differenze fra le funzioni PEAR e quelle di libreria PHP, mentre nel prossimo articolo "JSON e PHP: creare un motore di ricerca con Yahoo!" vi mostrerò un esempio pratico utilizzando PEAR.
Con PHP e PEAR:
<?php
include "JSON.php";
$json = new Services_JSON();
// array da codificare
$prova = array("a", "b", "c");
$json_string = $json->encode($prova);
// risultato
echo $json_string;
?>
Con le funzioni di PHP:
<?php
// array da codificare
$prova = array("a", "b", "c");
$json_string = json_encode($prova);
// risultato
echo $json_string;
?>
Differenze:
Come vedete le differenze sono pochissime.
In PEAR bisogna mettere queste righe per includere la classe che ci serve (scaricata da PEAR) e per istanziarla:
include "JSON.php";
$json = new Services_JSON();
e poi utilizzeremo l’istanza in PEAR:
$json_string = $json->encode($prova);
mentre in PHP utilizzeremo le funzioni:
$json_string = json_encode($prova);
L’output di entrambi i blocchi di codice sarà:
["a","b","c"]
A cosa serve?
Consideriamo che JSON ci servirà soprattutto per la comunicazione tra un client e un server. A questo punto possiamo immaginare che il server farà una echo dell’encode (json_encode()) dei dati che vuole inviare (in questo caso ["a","b","c"]) mentre il client farà una decode (json_decode()) dei dati che riceve (per trasformarli nuovamente in array), comodo vero?
Nell’esempio precedente inviamo semplicemente un array con 3 valori mentre nel prossimo articolo vedremo come costruire un motore di ricerca con le API JSON di Yahoo! così che tutti gli amanti della pratica, come me, avranno un esempio concreto di utilizzo.