Home
Home
Tutorials
   PHP
   Java
   Tutti...
Manuali
SmartImage
Marketing
Downloads
Contatti
Affiliati

  Da vedere
Hosting
Statistiche per siti
Corsi per webmaster
Hardware
Processori

  OnFocus
Implementare il pattern Singleton in script PHP

Inviare email con PHP: 1 parte

Creare RTF da Php - Introduzione

  Siti Amici
Miki News
Giochi gratis
Areagratis
Baratto Online
AI Machines
Guide e Manuali Gratis
Egregio Directory
ScambioLink.org
Shopping online
Prestiti online
Tutorialing
Bigthink - idee dal web
Add to Technorati Favorites

Tutti i siti amici
Diventa Affiliato

 


Autore: Alessandro Coscia
Categoria: php
Livello: normale Livello normale

JSON e PHP: Un esempio concreto

Usare JSON per inviare e ricevere i dati di una classe

Nel precedente articolo abbiamo dato una breve introduzione a JSON che parla anche degli strumenti necessari per utilizzarlo, qui invece presenteremo un piccolo esempio concreto che precede l'articolo "JSON e PHP: creare un motore di ricerca con Yahoo!".

Convenzioni
Per comodità useremo la classe JSON di PEAR che basta scaricare ed includere nel vostro script: http://pear.php.net/pepr/pepr-proposal-show.php?id=198

Inviare i dati di una classe
A volte nelle nostre applicazioni abbiamo istanziato delle classi che ci sarebbe utile inviare così come sono ad applicazioni esterne.
Senza JSON bisognerebbe creare un foglio XML e perdere del tempo scrivendo il codice PHP che lo genera (il foglio XML) e che lo legge, invece con JSON siamo in grado di inviare la nostra classe con una sola riga di codice!
 $json->encode($nostra_istanza_di_classe);

e leggere:
 $json->decode($dato_ricevuto);


Un esempio
Immaginiamo di dover inviare da un sito di ecommerce le informazioni sugli ultimi prodotti venduti oggi.

Il server:
Prima di tutto includiamo la classe JSON che ci fornisce PEAR:
// Includiamo JSON/PEAR
include "JSON.php";
$json = new Services_JSON();

E definiamo la classe Articolo
class Articolo {
public 
$nome;
public 
$costo;
private 
$sigla;

public function 
setNome($nome) {
$this->nome $nome;
}
public function 
setCosto($euro) {
$this->costo $euro;
}
public function 
setSigla($sigla) {
$this->sigla $sigla;
}
}


Ora creo degli articoli:
// Creo degli articoli
// Un cappello
$art['cappello'] = new Articolo;
$art['cappello']->setNome("Cappello Bellissimo");
$art['cappello']->setCosto(10);
$art['cappello']->setSigla('AB908LL');

// e una maglietta
$art['maglietta'] = new Articolo;
$art['maglietta']->setNome("Maglietta PHP");
$art['maglietta']->setCosto(18);
$art['maglietta']->setSigla('MA104JS');


Infine codifico e invio il risultato:
// codifico e mostro gli articoli
$json_string $json->encode($art);
echo 
$json_string;


In questo caso l'output sarà:
{"cappello":{"nome":"Cappello Bellissimo","costo":10},"maglietta":{"nome":"Maglietta PHP","costo":18}}

notare che gli atributi private $sigla non vengono (giustamente) mostrati.

Il client:
Il client, ovvero chi richiede i dati al server, una volata ricevuti dovrà solamente effettuare il decode.
// Includiamo JSON/PEAR
include "JSON.php";
$json = new Services_JSON();

// decodifico ed utilizzo
$dati_ricevuti '{"cappello":{"nome":"Cappello Bellissimo","costo":10},"maglietta":{"nome":"Maglietta PHP","costo":18}}';
$risultato $json->decode($dati_ricevuti);


Per utilizzare il risultato potrò usare semplicemente qualcosa come
echo $risultato->cappello->nome;


per esempio
echo "Il nome del cappello e' ";
echo 
$risultato->cappello->nome;
echo 
" e costa ";
echo 
$risultato->cappello->costo;
echo 
" euro <br /> ";

echo 
"Il nome della maglietta e' ";
echo 
$risultato->maglietta->nome;
echo 
" e costa ";
echo 
$risultato->maglietta->costo;
echo 
" euro <br /> ";


mostrerà
"Il nome del cappello e' Cappello Bellissimo e costa 10 euro
Il nome della maglietta e' Maglietta PHP e costa 18 euro" 


Conclusioni:
Data una classe PHP (o anche un array), è molto più veloce fare "$json->encode()" piuttosto che generare un foglio XML, inoltre si ha anche meno overhead a livello di peso in bit in caso di file grandi e di alto traffico.
Ad ogni modo l'esempio più vicino all'utilizzo comune di JSON per il web potrebbe essere proprio quello del prossimo articolo, ovvero un vostro script richiede un servizio da un sito più grande (come Yahoo!) che vi risponderà tramite JSON.

JSON e PHP: Introduzione ed esempi Precedente Indice Successivo JSON e PHP: creare un motore di ricerca con Yahoo!
JSON e PHP: Introduzione ed esempi JSON e PHP: creare un motore di ricerca con Yahoo!