2017-02-21 5 views
1

ich Daten aus einer JSON-Datei am Extrahieren anzuzeigen, die eine URL wie folgt aus:Alternative Methode spezifische JSON-Daten in PHP

$html5=file_get_contents("url"); 

$data = json_decode($html5);  

echo $data->a->k->f; 

Dies zeigt $27.58, die korrekt ist.

Hier ist meine JSON-Daten:

{ 
"a":{ 
    "k":{ 
    "c":"tr", 
    "f":"$27.58", 
    "fb":"$30.35", 
    "ci":"12873809", 
    "cname":"Cdkeysgame_com", 
    "ep":"26.05", 
    "epb":"28.66", 
    "a":"5473091", 
    "it":"steam", 
    "sl":"0", 
    "l":null, 
    "lt":null, 
    "x":0, 
    "v":"retail", 
    "ne":0, 
    "so":0, 
    "tr":304, 
    "r":97, 
    "cf":1, 
    "p":"27.58317275", 
    "pb":"30.3467843", 
    "eci":"865723abbf1cbb952ad4d2da8a8c925e" 
    }, 
    "k_1":{ 
    "c":"gb", 
    "f":"$27.64", 
    "fb":"$30.40", 
    "ci":"1065801", 
    "cname":"World_of_games", 
    "ep":"26.10", 
    "epb":"28.71", 
    "a":"781851", 
    "it":"steam", 
    "sl":"0", 
    "l":null, 
    "lt":null, 
    "x":0, 
    "v":"all", 
    "ne":0, 
    "so":0, 
    "tr":1041328, 
    "r":99, 
    "cf":1, 
    "p":"27.6361155", 
    "pb":"30.39972705", 
    "eci":"d01a7cacb0e424123985bfe2e53a0523" 
    }, 
    "k_2":{ 
    "c":"ch", 
    "f":"$27.68", 
    "fb":"$30.44", 
    "ci":"696012", 
    "cname":"G_hard", 
    "ep":"26.14", 
    "epb":"28.75", 
    "a":"1287052", 
    "it":"steam", 
    "sl":"0", 
    "l":null, 
    "lt":null, 
    "x":0, 
    "v":"retail", 
    "ne":0, 
    "so":0, 
    "tr":10818, 
    "r":99, 
    "cf":1, 
    "p":"27.6784697", 
    "pb":"30.44208125", 
    "eci":"a6666c0a47acb70d14b757cd52f1b9cc" 
    }} 

ich brauche, ohne k die gleichen Daten angezeigt werden soll. Zum Beispiel möchte ich:

echo $data->a->'Something that specifies first element of 'a' i.e k and not'k_1' and 'k_2'->f; 

Da ich diesen Inhalt bin Schaben ich nicht so etwas wie Struktur oder Daten in dieser JSON-Datei ändern kann.

Antwort

1

Wenn Sie nur den ersten Eintrag unter a möchten, dann können Sie als Array entschlüsseln:

$data = json_decode($json, true); 

Dann das erste Element $data['a'] erhalten und diese verwenden. current() wird auch funktionieren:

echo reset($data['a'])['f']; 

oder Re-Index $data['a'] numerisch und Zugriff auf die erste 0:

foreach($data['a'] as $values) { 
    echo $values['f']; 
    //break; if you only want the first one 
} 
+0

Ich habe diesen Code verwendet echo array_values ​​($ data ['a']) [0] ['f']; und ich habe diesen Fehler Kann nicht Objekt des Typs StdClass als Array verwenden – user7587888

+0

Weil Sie den ersten Satz und die erste Zeile des Codes in der Antwort nicht gelesen haben. – AbraCadaver

+1

danke ich habe vergessen, wahr hinzuzufügen :-) – user7587888

0

Sie dies tun, so kann:

echo array_values($data['a'])[0]['f']; 

sie alle fangen:

$object = json_decode($html5); 

foreach ($object->a as $element) { 
    echo $element->f; 
} 
Verwandte Themen