Utilisation Json
Résolu
thibault8904
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
thibault8904 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
thibault8904 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Malgrés de grosse recherche je n'arrive pas à trouver la solution à mon problème, que je vous expose:
J'ai un fichier Json :
Je souhaiterais simplement récupérer les données à l'intérieur mais avec du php, voila le code php :
Mais rien ne s'affiche au niveau de mes variables, mon echo ressemble à un texte à trou. De plus comment puis je faire pour pouvoir mettre par exemple l'accrobranche et l'aéromodélisme sachant qu'ils ont tous les 2 le même nom 'property2'
En vous remerciant de vos réponses
Malgrés de grosse recherche je n'arrive pas à trouver la solution à mon problème, que je vous expose:
J'ai un fichier Json :
{
"Name": "sport",
«Compter»: 14,
"Fréquence": "Toutes les 15 minutes»,
"Version": 4,
"Newdata": true,
"Lastrunstatus": "succès",
"Lastsuccess": "Tue 24 mars 2015 21:57:57 GMT + 0000 (UTC)",
"Thisversionstatus": "succès",
"Nextrun": "Tue 24 mars 2015 22:12:57 GMT + 0000 (UTC)",
"Thisversionrun": "Tue 24 mars 2015 21:57:57 GMT + 0000 (UTC)",
"résultats": {
"Collection1": [
{
"Property1": "Liste des sports"
}
],
"Collection2": [
{
"Property2": {
"Texte": "Accrobranche",
"Href": "http://www.exemple.fr"
}
},
{
"Property2": {
"Texte": "sportif aérobie»,
"Href": "http://www.exemple.fr"
}
},
{
"Property2": {
"Texte": "Aéromodélisme",
"Href": "http://www.exemple.fr"
}
}
]
}
}
Je souhaiterais simplement récupérer les données à l'intérieur mais avec du php, voila le code php :
<?php
$json = file_get_contents("urldemonfichierjson");
$parsed_json = json_decode($json, true);
$titre = $parsed_json->{'collection1'}[0]->{'property1'};
$sport1 = $parsed_json->{'collection2'}[1]->{'property2'};
$sport2 = $parsed_json->{'collection2'}[1]->{'property2'};
echo "$titre nous avons $sport1 et $sport2";
?>
Mais rien ne s'affiche au niveau de mes variables, mon echo ressemble à un texte à trou. De plus comment puis je faire pour pouvoir mettre par exemple l'accrobranche et l'aéromodélisme sachant qu'ils ont tous les 2 le même nom 'property2'
En vous remerciant de vos réponses
A voir également:
- Utilisation Json
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- La ressource demandée est en cours d'utilisation - Forum Téléphones & tablettes Android
- Manuel utilisation batigest connect pdf - Forum compta / gestion
- Logiciel en Cours d'utilisation ? ✓ - Forum Logiciels
4 réponses
Par exemple :
NB : Pour mon test .. j'ai mis ça dans mon fichier json :
<?php $file = "source.json"; if(file_exists($file)){ $json = file_get_contents($file); $parsed_json = json_decode($json, true); $arr_results = $parsed_json['results']; foreach($arr_results as $collection=>$k){ echo "<pre><b>**************<br>".$collection."</b><br>**************<br>"; foreach($k as $x=>$v){ $titre= isset($v['Property1'])?$v['Property1']:NULL; $sport= isset($v['Property2'])?$v['Property2']:NULL; if($titre){ echo "<br><u><b>titre</b></u>:"; print_r($titre); } if($sport){ foreach($sport as $S){ $text = isset($S['Texte'])?$S['Texte']:''; $href = isset($S['Href'])?$S['Href']:''; echo "<br> Sport :".$text." --- ".$href; } } } echo "</pre>"; } }else{ echo " <br> No File ! "; }
NB : Pour mon test .. j'ai mis ça dans mon fichier json :
{
"Name": "sport",
"Compter": 14,
"Frequence": "Toutes les 15 minutes",
"Version": 4,
"Newdata": true,
"Lastrunstatus": "succes",
"Lastsuccess": "Tue 24 mars 2015 21:57:57 GMT + 0000 (UTC)",
"Thisversionstatus": "succes",
"Nextrun": "Tue 24 mars 2015 22:12:57 GMT + 0000 (UTC)",
"Thisversionrun": "Tue 24 mars 2015 21:57:57 GMT + 0000 (UTC)",
"results": {
"Collection1": [
{
"Property1": "Liste des sports"
}
],
"Collection2": [
{
"Property2": [{
"Texte": "Accrobranche",
"Href": "http://www.exemple.fr"
}]
},
{
"Property2": [{
"Texte": "sportif aerobie",
"Href": "http://www.exemple.fr"
}]
},
{
"Property2": [{
"Texte": "Aeromodelisme",
"Href": "http://www.exemple.fr"
}]
}
]
}
}
Bonjour,
Visiblement tu as oublié un niveau...
tes collections sont dans : "résultats"
A la limite... fais des print_r de tes variables pour voir ce qu'elles contiennent...
Commence par :
Visiblement tu as oublié un niveau...
tes collections sont dans : "résultats"
A la limite... fais des print_r de tes variables pour voir ce qu'elles contiennent...
Commence par :
print_r($parsed_json);
print_r($parsed_json); // me renvoi mon fichier Json
Pas tout à fait de la même manière.. mais sous forme d'array...
peux tu nous coller le résultat de la commande suivante:
<?php $json = file_get_contents("urldemonfichierjson"); $parsed_json = json_decode($json, true); echo "<pre>"; print_r($parsed_json); echo "</pre>.";
ah exact, Voila le résultat:
Array
(
[name] => sport
[count] => 14
[frequency] => Every 15 mins
[version] => 13
[newdata] => 1
[lastrunstatus] => success
[lastsuccess] => Wed Mar 25 2015 00:18:36 GMT+0000 (UTC)
[thisversionstatus] => success
[nextrun] => Wed Mar 25 2015 00:33:36 GMT+0000 (UTC)
[thisversionrun] => Wed Mar 25 2015 00:18:36 GMT+0000 (UTC)
[results] => Array
(
[collection1] => Array
(
[0] => Array
(
[property1] => Liste des sports
)
)
[collection2] => Array
(
[0] => Array
(
[property2] => Array
(
[text] => Accrobranche
[href] => http://www.exemple.fr
)
)
[1] => Array
(
[property2] => Array
(
[text] => Aerobic sportive
[href] => http://www.exemple.fr
)
)
[2] => Array
(
[property2] => Array
(
[text] => Aéromodélisme
[href] => http://www.exemple.fr
)
)
[3] => Array
(
[property2] => Array
(
[text] => Aérostation
[href] => http://www.exemple.fr
)
)
[4] => Array
(
[property2] => Array
(
[text] => Agility
[href] => http://www.exemple.fr
)
)
[5] => Array
(
[property2] => Array
(
[text] => Aikido
[href] => http://www.exemple.fr
)
)
[6] => Array
(
[property2] => Array
(
[text] => Alpinisme
[href] => http://www.exemple.fr
)
)
[7] => Array
(
[property2] => Array
(
[text] => Apnée
[href] => http://www.exemple.fr
)
)
[8] => Array
(
[property2] => Array
(
[text] => Aqua gym
[href] => http://www.exemple.fr
)
)
[9] => Array
(
[property2] => Array
(
[text] => Arts martiaux artistiques
[href] => http://www.exemple.fr
)
)
[10] => Array
(
[property2] => Array
(
[text] => Athlétisme
[href] => http://www.exemple.fr
)
)
[11] => Array
(
[property2] => Array
(
[text] => Aviation
[href] => http://www.exemple.fr
)
)
[12] => Array
(
[property2] => Array
(
[text] => Aviron
[href] => http://www.exemple.fr
)
)
)
)
)
.
Ah désolé.
Je pensais que tu avais compris comment s'en servir...
Donc... $parsed_json est un ARRAY (comme tu as pu le voir...)
Tes "conditions" se trouvent dans le sous-tableau results ...
donc :
Je pensais que tu avais compris comment s'en servir...
Donc... $parsed_json est un ARRAY (comme tu as pu le voir...)
Tes "conditions" se trouvent dans le sous-tableau results ...
donc :
$json = file_get_contents("urldemonfichierjson"); $parsed_json = json_decode($json, true); $arr_results = $parsed_json['results']; $collection1= $arr_results['collection1']; //etc....
mais tu peux enlever le if(file_exists...) si ton fichier n'est pas sur ton serveur mais via une URL ...
$json = file_get_contents('monurl'); $parsed_json = json_decode($json, true); $arr_results = $parsed_json['results']; foreach($arr_results as $collection=>$k){ echo "<pre><b>**************<br>".$collection."</b><br>**************<br>"; foreach($k as $x=>$v){ $titre= isset($v['Property1'])?$v['Property1']:NULL; $sport= isset($v['Property2'])?$v['Property2']:NULL; if($titre){ echo "<br><u><b>titre</b></u>:"; print_r($titre); } if($sport){ foreach($sport as $S){ $text = isset($S['Texte'])?$S['Texte']:''; $href = isset($S['Href'])?$S['Href']:''; echo "<br> Sport :".$text." --- ".$href; } } } echo "</pre>"; }
Qui peut donc s'écrire en une seule fois :
dans ton cas ..ça serait