Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP JSON读取对象属性_Php_Json_File - Fatal编程技术网

PHP JSON读取对象属性

PHP JSON读取对象属性,php,json,file,Php,Json,File,我是php编程的初学者,我试图从JSON字符串中获取每个php的一些信息。 因此,我使用: $json = file_get_contents('data.json') var_dump(json_decode($json)); 获取php将如何解析我的JSON文件的更多信息。它的输出如下所示: array(10) { [0]=> object(stdClass)#1 (1) { ["links"]=> array(4) { [0]=> obje

我是php编程的初学者,我试图从JSON字符串中获取每个php的一些信息。 因此,我使用:

$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) } } } }
...
我想知道如何显示,例如:

  • 链接[0]的“remoteIP”属性
  • 链接[0]的所有属性

感谢您的建议

只要您有一个数组,就可以使用方括号访问它的任何索引。只要有对象,就可以使用
->
操作符访问该对象的属性

因此,对于您的示例,应该是:

$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
另一种方法是(正如Leo Bali所指出的),让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
尝试json_解码($json,true)。。。。这样,所有json都将表示为一个数组