php json对象读取

php json对象读取,php,arrays,json,object,Php,Arrays,Json,Object,我有一个用php编写的网页,在这个网页上,我可以从他的linked-in配置文件中获得一些关于用户的信息,这要感谢linked-in API。它给了我以下json对象。与: $user = json_decode($response); 方法i将以下json对象解码为$user对象 { "firstName": "Tolga", "lastName": "Evcimen", "skills": { "_total": 2, "values": [ { "id": 1, "skill": {"n

我有一个用php编写的网页,在这个网页上,我可以从他的linked-in配置文件中获得一些关于用户的信息,这要感谢linked-in API。它给了我以下json对象。与:

$user = json_decode($response);
方法i将以下json对象解码为$user对象

{ "firstName": "Tolga", "lastName": "Evcimen", "skills": { "_total": 2, "values": [ { "id": 1, "skill": {"name": "Microsoft Office"} }, { "id": 2, "skill": {"name": "Microsoft Excel"} } ] } }
我不能使用这些值,我的php知识有点低,这就是为什么我不知道如何阅读技能或其他任何东西。到目前为止,我唯一能读到的是:

$user->firstName , $user->lastName
但我不能用同样的方法得到剩下的:(

请给我一些关于这些事情的信息

这是有效的:

echo $user->firstName;
echo $user->skills->values[0]->id;
echo $user->skills->values[0]->skill->name;
结果:

Tolga
1
Microsoft Office

在PHP fiddle上测试它:

我对此没有问题,也许可以发布一个代码示例,这样我们就可以看到您的错误所在

$user->skills->values[1]->skill->name
例如:

<?php
    $response = '{
      "firstName": "Tolga",
      "lastName": "Evcimen",
      "skills": {
        "_total": 2,
        "values": [
          {
            "id": 1,
            "skill": {
              "name": "Microsoft Office"
            }
          },
          {
            "id": 2,
            "skill": {
              "name": "Microsoft Excel"
            }
          }
        ]
      }
    }';

    $user = json_decode($response);

    var_dump($user->skills->values[1]);

?>

非常感谢,结果是我在代码中犯了一些其他错误,而不是echo,我使用了print,并以一种不好的方式混淆了它。这就是为什么我不能在代码中实现正确的行为

$user = fetch('GET', '/v1/people/~:(firstName,lastName,skills)');
print "\n <\br> Hello $user->firstName $user->lastName."; 
print " $user->skills->values[0]->skill->name";
echo $user->skills->values[0]->skill->name;
exit; 
$user=fetch('GET','/v1/people/~:(firstName,lastName,skills));
打印“\n Hello$user->firstName$user->lastName。”;
打印“$user->skills->values[0]->skill->name”;
echo$user->skills->value[0]->skill->name;
出口
不起作用:)

echo“\n你好$user->firstName$user->lastName。”;
echo$user->skills->value[0]->skill->name;
很好


感谢您的关注。

您是否使用$user['skills']而不是$user->skills获得同样的效果?使用{}时,您不是创建实际的PHP对象,而是创建关联数组。我会使用$user['skills']['values'][1]['skill']['name']
var\u dump($user)
让您看到json\u解码的实际结构。一旦你在
$user
中有了它,做一个
print\u r
var\u dump
来查看你发布的JSON结构对我来说很好。如果代码和您发布的其他内容确实有效,我们就无法真正帮助您。@Alejandro:默认情况下,JSON编码的对象被转换为类
stdClass
,而不是数组。
object(stdClass)#5 (2) {
  ["id"]=>
  int(2)
  ["skill"]=>
  object(stdClass)#6 (1) {
    ["name"]=>
    string(15) "Microsoft Excel"
  }
}
$user = fetch('GET', '/v1/people/~:(firstName,lastName,skills)');
print "\n <\br> Hello $user->firstName $user->lastName."; 
print " $user->skills->values[0]->skill->name";
echo $user->skills->values[0]->skill->name;
exit; 
echo "\n <\br> Hello $user->firstName $user->lastName.";  
echo $user->skills->values[0]->skill->name;