2015-08-20 18 views
1

Im пытается получить цену акции qoute с помощью json_decode и file_get_contents. im пытается получить цену с ассоциативными массивами, но я получаю неопределенные ошибки индекса и, честно говоря, я застрял. мой код:Parsing complex json in php

$jsondata =file_get_contents("http://finance.yahoo.com/webservice/v1/symbols/wmt/quote?format=json"); 
    $json = json_decode($jsondata, true); 
    $list = $json['list']; 
    $resource = $list['resources']; 
    $resource = $resource['resource']; 
    $fields = $resource['fields']; 
    $price = $fields['price']; 
    echo $price; 

JSON:

{ 
    list : { 
     meta : { 
      type : "resource-list", 
      start : 0, 
      count : 1 
     }, 
     resources : [{ 
       resource : { 
        classname : "Quote", 
        fields : { 
         name : "Wal-Mart Stores, Inc. Common St", 
         price : "68.570000", 
         symbol : "WMT", 
         ts : "1440014635", 
         type : "equity", 
         utctime : "2015-08-19T20:03:55+0000", 
         volume : "16333364" 
        } 
       } 
      } 
     ] 
    } 
} 

любая помощь будет принята с благодарностью.

ответ

0

Попробуйте это, это должно быть работа,

$json = json_decode($jsondata, true); 
$resoureces=$json['list']['resources']; 
foreach ($resoureces as $value) { 
$price=$value['resource']['fields']['price']; 
} 
print_r($price); 
0

Это все происходит не так в следующей строке:

$resource = $resource['resource']; 

На данный момент, $resource уже неассоциативным массив, который вы должны просто быть циклически:

$resources = $list['resources']; 

foreach($resources as $resource) { 
    $name = $resource['classname']; 
    $fields = $resource['fields']; 
    $price = $fields['price']; 
} 
+0

этот ответ вызывает неопределенные ошибки индекса для имени класса и поля. Спасибо за ответ, хотя. –