Page 1 sur 1

lire lien JSON avec php

Posté : 14 févr. 2014, 23:18
par sax76
bonjour à tous

je decouvre le json , et j'ai bloque sur un truc
voici le code utilisé :
<?php
$json = file_get_contents("http://xxxxxxxxxxxxxx/streaminfo.get");
var_dump(json_decode($json, true));
$parsed_json = json_decode($json);
$resultat = $parsed_json->{'type'};
echo $resultat ;

?>
en retour j'ai ça
array(2) { ["type"]=> string(6) "result" ["data"]=> array(1) { [0]=> array(19) { ["title"]=> string(10) "lien" ["song"]=> string(42) "Frida - I Know There´s Something Going On" ["track"]=> array(5) { ["artist"]=> string(5) "Frida" ["title"]=> string(34) "I Know There´s Something Going On"
et pour $resultat j'ai bien "result" par contre j'arrive pas a aller chercher ["artist"]=> string(5) "Frida" et ["title"]=> string(34) "I Know There´s Something Going On"
pour récupérer l’interprète + le titre
$resultat = $parsed_json->{'type'};
apres le type j'ai testé plusieurs truc rien a faire la var $resultat reste vide

j'ai testé
$resultat = $parsed_json->{'type'}->{'title};
je devrais avoir "lien" mais rien

oui ya 2 "title" moi je veux aller chercher le second
mais je bloque ...

besoin de vos lumieres :)

cdt

Re: lire lien JSON avec php

Posté : 15 févr. 2014, 13:42
par damien_55
Hello,

Ton code est brouillon.

Pour faire simple, peux tu nous donner le contenu de ton json de base $json ?

Merci :)

Re: lire lien JSON avec php

Posté : 15 févr. 2014, 14:58
par sax76
j'ai affiché le json pour voir les etapes histoire de compendre comment ca marche

json de base
{"type":"result","data":[{"title":"80","song":"Michel Sardou - Musica","track":{"artist":"Michel Sardou","title":"Musica","album":"","royaltytrackid":0,"imageurl":"nocover.png"},"bitrate":"64 Kbps","server":"Online","autodj":"Online","source":"Yes","offline":false,"summary":"<a href=\"">80 - Michel Sardou - Musica<\/a>","listeners":1,"maxlisteners":100,"reseller":0,"serverstate":true,"sourcestate":true,"sourceconn":1,"date":"Feb 15, 2014","time":"06:39 PM","rawmeta":"Michel Sardou - Musica","url":"rpc"}]}
apres passage dans php
array(2) { ["type"]=> string(6) "result" ["data"]=> array(1) { [0]=> array(19) { ["title"]=> string(10) "80" ["song"]=> string(22) "Michel Sardou - Musica" ["track"]=> array(5) { ["artist"]=> string(13) "Michel Sardou" ["title"]=> string(6) "Musica" ["album"]=> string(0) "" ["royaltytrackid"]=> int(0) ["imageurl"]=> string(63) "nocover.png" } ["bitrate"]=> string(7) "64 Kbps" ["server"]=> string(6) "Online" ["autodj"]=> string(6) "Online" ["source"]=> string(3) "Yes" ["offline"]=> bool(false) ["summary"]=> string(106) "80 - Michel Sardou - Musica" ["listeners"]=> int(1) ["maxlisteners"]=> int(100) ["reseller"]=> int(0) ["serverstate"]=> bool(true) ["sourcestate"]=> bool(true) ["sourceconn"]=> int(1) ["date"]=> string(12) "Feb 15, 2014" ["time"]=> string(8) "06:39 PM" ["rawmeta"]=> string(22) "Michel Sardou - Musica" ["url"]=> string(33) "/rpc" } } }
array(2) {
    ["type"]=> string(6) "result" 
    ["data"]=> array(1) { 
    		[0]=> array(19) { 
            	["title"]=> string(10) "80" 
            	["song"]=> string(38) "Michel Sardou - Musica" 
            	["track"]=> array(5) { 
            		["artist"]=> string(10) "Michel Sardou" 
            		["title"]=> string(25) "Musica" 
            		["album"]=> string(0) "" 
            		["royaltytrackid"]=> int(0) 
            		["imageurl"]=> string(63) "nocover.png" 
     			}
     		["bitrate"]=> string(7) "64 Kbps" 
     		["server"]=> string(6) "Online" 
     		["autodj"]=> string(6) "Online" 
     		["source"]=> string(3) "Yes" 
     		["offline"]=> bool(false) 
     		["summary"]=> string(122) "80 - Bananarama - Musica" 
     		["listeners"]=> int(1) 
     		["maxlisteners"]=> int(100) 
     		["reseller"]=> int(0) 
     		["serverstate"]=> bool(true) 
     		["sourcestate"]=> bool(true) 
     		["sourceconn"]=> int(1) 
     		["date"]=> string(12) "Feb 15, 2014" 
     		["time"]=> string(8) "06:39 PM" 
     		["rawmeta"]=> string(38) "Michel Sardou - Musica" 
     		["url"]=> string(33) "/rpc" 
     		} 
	}
} 
$resultat = $parsed_json->{'data'};
marche

j'ai voulu mettre
$resultat = $parsed_json->{'data'}->{'title'};
return rien :(

pour lire il faut bien suivre les { pour la suite des infos ......
vois pas mon erreur la :(

Re: lire lien JSON avec php

Posté : 17 févr. 2014, 14:06
par damien_55
Slt,

c'est quoi ton code complet ?

$parsed_json correspond a quoi ?

J'ai essayer hier avec ce que tu avais donné comme base du json, mais pas de succes.

Re: lire lien JSON avec php

Posté : 17 août 2014, 06:44
par DenisACF01
Bonjour, j'ai le même problème j'arrive à affiché le dernier tableau de mon json mais seulement pas les autres
pouvez-vous m'aider merci d'avance


Mon fichier JSON:

Code : Tout sélectionner

Array ( [0] => {"aaData" [1] => [{"callsign" [2] => "HAF1","realname" [3] => "Patrick ","fstype" [4] => "FSX","rank" [5] => "5","ccccccc" [6] => "0.0.4.Y","plane_onground" [7] => "Ground","planned_aircraft" [8] => "T\/CORS\/F","planned_depairport" [9] => "LFRH","planned_destairport" [10] => "LFRH","server" [11] => "helico-avions.","time_connected" [12] => "00 [13] => 42 [14] => 54","altitude" [15] => "167","plane_hdg" [16] => "148","groundspeed" [17] => "0","lat" [18] => "47.759588","long" [19] => "-3.441496","transponder" [20] => "1200","remarks" [21] => "","route" [22] => "","flighttype" [23] => ""},{"callsign" [24] => "FSFLY","realname" [25] => "Fs FLYBOYS","fstype" [26] => "FSX","rank" [27] => "2","dafwings" [28] => "0.0.4.X","plane_onground" [29] => "Ground","planned_aircraft" [30] => "T\/F18\/F","planned_depairport" [31] => "","planned_destairport" [32] => "","server" [33] => "FsFlyboys","time_connected" [34] => "37 [35] => 28 [36] => 18","altitude" [37] => "178","plane_hdg" [38] => "318","groundspeed" [39] => "0","lat" [40] => "63.992747","long" [41] => "-22.634425","transponder" [42] => "1200","remarks" [43] => "","route" [44] => "","flighttype" [45] => ""},{"callsign" [46] => "ACF01","realname" [47] => "Denis ","fstype" [48] => "P3D","rank" [49] => "12","ccccccc" [50] => "0.0.4.X","plane_onground" [51] => "Airborne","planned_aircraft" [52] => "T\/MD11\/F","planned_depairport" [53] => "LFRS","planned_destairport" [54] => "GOOY","server" [55] => "-Aventure-","time_connected" [56] => "03 [57] => 36 [58] => 01","altitude" [59] => "37058","plane_hdg" [60] => "202","groundspeed" [61] => "478","lat" [62] => "29.359042","long" [63] => "-9.798184","transponder" [64] => "2000","remarks" [65] => "FLIGHT PREPAR3D V2.2","route" [66] => "NORMI2N NORMI UN867 BLV UL14 NEA UN864 PIMOS UN869 ADM UR975 SLO SLO.OMUBA1N","flighttype" [67] => ""}]} )
résultat JSON php

Code : Tout sélectionner

object(stdClass)[2] public 'aaData' => array (size=3) 0 => object(stdClass)[3] public 'callsign' => string 'ACF01' (length=5) public 'realname' => string 'Denis ' (length=14) public 'fstype' => string 'P3D' (length=3) public 'rank' => string '12' (length=2) public 'ccccc' => string '0.0.4.X' (length=7) public 'plane_onground' => string 'Airborne' (length=8) public 'planned_aircraft' => string 'T/MD11/F' (length=8) public 'planned_depairport' => string 'GMMN' (length=4) public 'planned_destairport' => string 'KJFK' (length=4) public 'server' => string '-Aventure-' (length=14) public 'time_connected' => string '03:06:51' (length=8) public 'altitude' => string '38322' (length=5) public 'plane_hdg' => string '286' (length=3) public 'groundspeed' => string '511' (length=3) public 'lat' => string '39.084087' (length=9) public 'long' => string '-33.620902' (length=10) public 'transponder' => string '2000' (length=4) public 'remarks' => string 'FLIGHT PREPAR3D V2.2' (length=20) public 'route' => string 'ODAXA UH899 IBALU DCT BEXAL DCT LUTAK DCT 3820N 3930N 3940N 3950N 4060N DCT DOVEY DCT PARCH' (length=91) public 'flighttype' => string '' (length=0) 1 => object(stdClass)[4] public 'callsign' => string 'ACF59' (length=5) public 'realname' => string '>Joan ' (length=20) public 'fstype' => string 'FS9' (length=3) public 'rank' => string '8' (length=1) public 'ccccc' => string '0.0.4.X' (length=7) public 'plane_onground' => string 'Ground' (length=6) public 'planned_aircraft' => string 'T/A332/F' (length=8) public 'planned_depairport' => string 'DIAP' (length=4) public 'planned_destairport' => string 'GCFV' (length=4) public 'server' => string '-Aventure-' (length=14) public 'time_connected' => string '15:20:43' (length=8) public 'altitude' => string '36' (length=2) public 'plane_hdg' => string '309' (length=3) public 'groundspeed' => string '0' (length=1) public 'lat' => string '5.250678' (length=8) public 'long' => string '-3.932632' (length=9) public 'transponder' => string '1200' (length=4) public 'remarks' => string 'AVENTURE / TCAS EQUIPED/FRENCH / DEPART LE 15/08/2014 A 1000 Z' (length=75) public 'route' => string 'BKY UG851 BKO UM122 OPARA UR977 DEPOX UM122 EREMO UR977 IPONA UM122 EBATI UR977 ADM UN869 RUSIK DCT' (length=99) public 'flighttype' => string '' (length=0) 2 => object(stdClass)[5] public 'callsign' => string 'FSFLY' (length=9) public 'realname' => string 'Fs FLY' (length=10) public 'fstype' => string 'FSX' (length=3) public 'rank' => string '2' (length=1) public 'ccccc' => string '0.0.4.X' (length=7) public 'plane_onground' => string 'Ground' (length=6) public 'planned_aircraft' => string 'T/F18/F' (length=7) public 'planned_depairport' => string '' (length=0) public 'planned_destairport' => string '' (length=0) public 'server' => string 'FsFlyboys' (length=9) public 'time_connected' => string '58:40:02' (length=8) public 'altitude' => string '178' (length=3) public 'plane_hdg' => string '18' (length=2) public 'groundspeed' => string '0' (length=1) public 'lat' => string '63.996437' (length=9) public 'long' => string '-22.632319' (length=10) public 'transponder' => string '1200' (length=4) public 'remarks' => string '' (length=0) public 'route' => string '' (length=0) public 'flighttype' => string '' (length=0)
mon code complet:

Code : Tout sélectionner

$json = file_get_contents("mon_url.json"); $parsed_json = json_decode($json,false); $connect = array(); $server = $parsed_json->{'aaData'}[2]->{'server'}; $Callsign = $parsed_json->{'aaData'}[2]->{'callsign'}; $realname = $parsed_json->{'aaData'}[2]->{'realname'}; $fstype = $parsed_json->{'aaData'}[2]->{'fstype'}; $planned_depairport = $parsed_json->{'aaData'}[2]->{'planned_depairport'}; $planned_destairport = $parsed_json->{'aaData'}[2]->{'planned_destairport'}; $planned_aircraft = $parsed_json->{'aaData'}[2]->{'planned_aircraft'}; $plane_onground = $parsed_json->{'aaData'}[2]->{'plane_onground'}; $time_connected = $parsed_json->{'aaData'}[2]->{'time_connected'}; echo "${server}\n"; echo "${Callsign}\n"; echo "${realname}\n"; echo "${fstype}\n"; echo "${planned_depairport}\n"; echo "${planned_destairport}\n"; echo "${planned_aircraft}\n"; echo "${plane_onground}\n"; echo "${time_connected}\n"; ?>
affichage tableau:
magin IMG07-B Georges - ATC FS9 T/BE58/F Ground -1:59:20

Re: lire lien JSON avec php

Posté : 18 août 2014, 11:46
par ynx
Salut,

Tu y était presque, mais data est un tableau, il faut donc accéder à son premier élément pour en récupérer les infos :
$json_brut = '{
    "type": "result",
    "data": [
        {
            "title": "80",
            "song": "Michel Sardou - Musica",
            "track": {
                "artist": "Michel Sardou",
                "title": "Musica",
                "album": "",
                "royaltytrackid": 0,
                "imageurl": "nocover.png"
            },
            "bitrate": "64 Kbps",
            "server": "Online",
            "autodj": "Online",
            "source": "Yes",
            "offline": false,
            "summary": "80-MichelSardou-Musica",
            "listeners": 1,
            "maxlisteners": 100,
            "reseller": 0,
            "serverstate": true,
            "sourcestate": true,
            "sourceconn": 1,
            "date": "Feb15,2014",
            "time": "06: 39PM",
            "rawmeta": "MichelSardou-Musica",
            "url": "rpc"
        }
    ]
}';

$json = json_decode($json_brut, true);

var_dump($json['data'][0]['song']); // Michel Sardou - Musica
Bonne journée

Re: lire lien JSON avec php

Posté : 18 août 2014, 17:52
par DenisACF01
Bonjour, vous répondez à une ancienne question par damien_55 17 Fév 2014, 14:06 et non à la mienne lol
Merci de me dire comment puis-je lire tous les array de mon fichier json Merci :wink:

Re: lire lien JSON avec php

Posté : 19 août 2014, 11:06
par ynx
$json_brut = '{"aaData"  : [{"callsign"  : "HAF1","realname"  : "Patrick ","fstype"  : "FSX","rank"  : "5","ccccccc"  : "0.0.4.Y","plane_onground"  : "Ground","planned_aircraft"  : "T\/CORS\/F","planned_depairport"  : "LFRH","planned_destairport"  : "LFRH","server"  : "helico-avions.","time_connected"  : "00  : 42  : 54","altitude"  : "167","plane_hdg"  : "148","groundspeed"  : "0","lat"  : "47.759588","long"  : "-3.441496","transponder"  : "1200","remarks"  : "","route"  : "","flighttype"  : ""},{"callsign"  : "FSFLY","realname"  : "Fs FLYBOYS","fstype"  : "FSX","rank"  : "2","dafwings"  : "0.0.4.X","plane_onground"  : "Ground","planned_aircraft"  : "T\/F18\/F","planned_depairport"  : "","planned_destairport"  : "","server"  : "FsFlyboys","time_connected"  : "37  : 28  : 18","altitude"  : "178","plane_hdg"  : "318","groundspeed"  : "0","lat"  : "63.992747","long"  : "-22.634425","transponder"  : "1200","remarks"  : "","route"  : "","flighttype"  : ""},{"callsign"  : "ACF01","realname"  : "Denis ","fstype"  : "P3D","rank"  : "12","ccccccc"  : "0.0.4.X","plane_onground"  : "Airborne","planned_aircraft"  : "T\/MD11\/F","planned_depairport"  : "LFRS","planned_destairport"  : "GOOY","server"  : "-Aventure-","time_connected"  : "03  : 36  : 01","altitude"  : "37058","plane_hdg"  : "202","groundspeed"  : "478","lat"  : "29.359042","long"  : "-9.798184","transponder"  : "2000","remarks"  : "FLIGHT PREPAR3D V2.2","route"  : "NORMI2N NORMI UN867 BLV UL14 NEA UN864 PIMOS UN869 ADM UR975 SLO SLO.OMUBA1N","flighttype"  : ""}]}';

$json = json_decode($json_brut);

var_dump($json->aaData[2]->server); // -Aventure-
var_dump($json->aaData[2]->callsign); // ACF01