2016-05-22 8 views
0

hier meine Json istJson api Decodierung

{ 
    "rgInventory": { 
      "5455029633": { 
          "id":"5455029633", 
          "classid":"310776543", 
          "instanceid":"302028390", 
          "amount":"1" 
      } 
    } 
} 

Hier ist meine Art und Weise json in php

$content = file_get_contents("http://steamcommunity.com/profiles/76561198201055225/inventory/json/730/2"); 
$decode = json_decode($content); 
foreach($decode->rgInventory->5455029633 as $appid){ 
    echo $appid->id; 
} 

ich bekommen müssen zu analysieren, dass 5455029633, aber es funktioniert in foreach nicht.
Und ich möchte es auch in der Variablen speichern.

Antwort

2

JSON, die Sie angegeben haben, ist ungültig. Entferne das letzte Komma von "amount":"1", und du schließst die geschweifte Klammer. Dann sollten Sie in der Lage sein, auf den gewünschten Wert als $decode->rgInventory->{"5455029633"} zuzugreifen.

Oder machen Sie Ihr Leben einfacher;) und gehen nur für Assoc Array $decode = json_decode($content, true);

+0

Was passiert, wenn ich Hunderte von „5455029633“, die alle unterschiedlich sind und ich brauche alle echo oder es in die Variable zu bekommen? – Tony

+0

Wie ich schrieb, können Sie für assoc-Array anstelle von Objekt gehen, und dann ist alles trivial. Oder du kannst bei stdclass bleiben und die Eigenschaften wie hier gezeigt durchlaufen: http://php.net/manual/en/language.oop5.iterations.php - Standardschleife funktioniert gut: 'php> foreach ($ decode-> rgInventory wie $ key => $ v) {var_dump ($ key);} string (10) "5455029633" ' – michaJlS

0

Sie müssen wahr als zweites Argument an die Funktion zu übergeben json_decode ein Array statt eines Objekts zu erhalten:

PHP

<?php 
    $content = file_get_contents("http://steamcommunity.com/profiles/76561198201055225/inventory/json/730/2"); 
    $decode = json_decode($content, true); 
    echo $decode['rgInventory']['6255037137']['id']; // will output the property 'id' of the inventory 6255037137 
    $invetory = $decode['rgInventory']['6255037137'] // will store the inventory 6255037137 in the variable $inventory 

?>