php json对象读取
我有一个用php编写的网页,在这个网页上,我可以从他的linked-in配置文件中获得一些关于用户的信息,这要感谢linked-in API。它给了我以下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
$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;