2013-12-22 3 views
-1

Я новичок в php rogramming, и я пытаюсь получить некоторую информацию на PHP из строки JSON. Поэтому я использовал:PHP JSON атрибут объекта чтения

$json = file_get_contents('data.json') 
var_dump(json_decode($json)); 

, чтобы получить более подробную информацию о том, как PHP будет разобрать мой файл в формате JSON. Выход из него выглядит следующим образом:

array(10) { 
[0]=> object(stdClass)#1 (1) { 
    ["links"]=> array(4) { 
     [0]=> object(stdClass)#2 (6) { 
      ["localIP"]=> string(14) "172.29.126.189" 
      ["remoteIP"]=> string(14) "172.29.118.193" 
      ["validityTime"]=> int(586277) 
      ["linkQuality"]=> float(1) 
      ["neighborLinkQuality"]=> float(0.396) 
      ["linkCost"]=> float(2.524) } 

     [1]=> object(stdClass)#3 (6) { 
      ["localIP"]=> string(14) "172.29.126.189" 
      ["remoteIP"]=> string(14) "172.29.149.193" 
      ["validityTime"]=> int(551339) 
      ["linkQuality"]=> float(1) 
      ["neighborLinkQuality"]=> float(0.396) 
      ["linkCost"]=> float(2.524) } } } } 
... 

Я хочу знать, как я смог бы отобразить, например:

  • в «remoteIP» Attribute ссылок [0]
  • все атрибуты Ссылки [0]

Спасибо за ваши предложения

+0

try json_decode ($ json, true); .... Таким образом, весь json будет представлен как массив –

ответ

1

Всякий раз, когда у вас есть массив, вы используете squa re скобки для доступа к любому индексу. Всякий раз, когда у вас есть объект, вы используете оператор -> для доступа к его свойствам.

Так что для ваших примеров, это было бы:

$json = file_get_contents('data.json'); 
$data = json_decode($json); 

var_dump($data[0]->links[0]->remoteIP); // remoteIP of links[0] 
var_dump($data[0]->links[0]); // All attributes of links[0], as object 

Другим способом (как Лео Бали указал), чтобы позволить PHP преобразовать все объекты в массивы. В этом случае вы всегда используете квадратные скобки:

$json = file_get_contents('data.json'); 
$data = json_decode($json, true); // Add true here as second parameter 

var_dump($data[0]['links'][0]['remoteIP']); // remoteIP of links[0] 
var_dump($data[0]['links'][0]); // All attributes of links[0], as array 
Смежные вопросы