我尝试编写API的输出。
所以我最初接受了这个:
$api_response = json_decode(file_get_contents("--LINK TO API--"));
如果我var_dump $ api_response,像
这样的代码object(stdClass)#1 (3) {
["status"]=>
string(2) "ok"
["count"]=>
int(1)
["data"]=>
array(1) {
[0]=>
object(stdClass)#2 (4) {
["clan_id"]=>
int(1000001876)
["nickname"]=>
string(10) "JakenVeina"
["id"]=>
int(1001147659)
["account_id"]=>
int(1001147659)
}
}
}
因此,如果我只想输出account_id,我尝试了更多方法:
$account_id = $api_response["data"]["account_id];
echo $account_id;
和
echo $api_response->account_id;
对我来说没有任何作用。 有没有人有想法?
答案 0 :(得分:1)
您没有要求json_decode
解码为数组。
你需要(注意真实):
$api_response = json_decode(file_get_contents("--LINK TO API--"), true);
然后你应该能够根据需要访问数组键。
同样account_id
是一个低于您指定的子级别。
答案 1 :(得分:0)
结果的第一级是stdclass
,因此您必须使用->
来获取data
数组。数据然后是一个数组,您可以使用[]
访问其成员。
要获取您的account_id,您可以使用:
$account_id = $api_response->data['account_id'];
答案 2 :(得分:-1)
您有一个对象数组,因此您需要像对象一样访问它,对于数值,您需要使用{}
,否则您无法访问它。
$api_response->data->{0}->account_id; //1001147659
你也可以使用true
中的json_decode
作为第二个参数做同样的事情。如果您在那里执行此操作,您的数组将转换为关联数组,您可以像以下一样访问它:
$api_response['data'][0]['account_id']; //1001147659
两者都会产生相同的结果。