13-01-2010, 01:30 PM
Même question, peut-être pourrais-tu nous expliquer un peu ce que tu cherches faire et ce que tu as déjà fait.
JSON, c'est juste une notation pour représenter des objets, et — par un heureux hasard — c'est exactement la même notation qu'un objet Javascript !
Ainsi, voilà un objet JSON :
JSON, c'est juste une façon de noter un objet pour l'envoyer à quelque chose d'autre. Tous les langages proposent des API pour transformer un objet JSON en objet dudit langage (par exemple PHP propose json_decode) ou inversement : renvoyer une chaîne (du type de celle que j'ai représentation (une chaîne de caractère) .
Pour utiliser JSON avec PHP, il faut faire attention à quelques choses. Ainsi, les clés (name, race, energy, etc.) et les chaînes doivent être entourées de guillemets doubles. Sinon le parser de PHP plante (et renvoie NULL).
Admettons donc que je reçoive un objet JSON dans mon script (dans cet exemple, je vais l'écrire en dur, mais dans la pratique tu auras généralement une source externe) :
Et voilà ce qu'affiche ce script (lancé en CLI) :
Voilà, j'espère que ces exemples t'auront permis de comprendre la puissance de cette notation d'échange de données.
Sephi-Chan
JSON, c'est juste une notation pour représenter des objets, et — par un heureux hasard — c'est exactement la même notation qu'un objet Javascript !
Ainsi, voilà un objet JSON :
{
name: "Vegeta",
race: "Saiyan",
health: 160,
energy: 50
abilities: [
{
name: "Galick",
damages: 53,
energy: 20
},
{
name: "Final Flash",
damages: 67,
energy: 25
}
]
}
JSON, c'est juste une façon de noter un objet pour l'envoyer à quelque chose d'autre. Tous les langages proposent des API pour transformer un objet JSON en objet dudit langage (par exemple PHP propose json_decode) ou inversement : renvoyer une chaîne (du type de celle que j'ai représentation (une chaîne de caractère) .
Pour utiliser JSON avec PHP, il faut faire attention à quelques choses. Ainsi, les clés (name, race, energy, etc.) et les chaînes doivent être entourées de guillemets doubles. Sinon le parser de PHP plante (et renvoie NULL).
Admettons donc que je reçoive un objet JSON dans mon script (dans cet exemple, je vais l'écrire en dur, mais dans la pratique tu auras généralement une source externe) :
<?php
$vegeta_as_string = '{
"name": "Vegeta",
"race": "Saiyan",
"health": 160,
"energy": 50,
"abilities": [
{
"name": "Galick",
"damages": 53,
"energy": 20
},
{
"name": "Final Flash",
"damages": 67,
"energy": 25
}
]
}';
$vegeta = json_decode($vegeta_as_string);
print_r($vegeta);
// On crée une attaque pour notre ami.
$ability = new StdClass();
$ability->name = "Final Shine Attack";
$ability->damages = 99;
$ability->energy = 35;
$vegeta->abilities[] = $ability;
$vegeta_as_string = json_encode($vegeta);
echo $vegeta_as_string;
?>
Et voilà ce qu'affiche ce script (lancé en CLI) :
stdClass Object
(
[name] => Vegeta
[race] => Saiyan
[health] => 160
[energy] => 50
[abilities] => Array
(
[0] => stdClass Object
(
[name] => Galick
[damages] => 53
[energy] => 20
)
[1] => stdClass Object
(
[name] => Final Flash
[damages] => 67
[energy] => 25
)
)
)
{"name":"Vegeta","race":"Saiyan","health":160,"energy":50,"abilities":[{"name":"Galick","damages":53,"energy":20},{"name":"Final Flash","damages":67,"energy":25},{"name":"Final Shine Attack","damages":99,"energy":35}]}
Voilà, j'espère que ces exemples t'auront permis de comprendre la puissance de cette notation d'échange de données.
Sephi-Chan