PHP:警告:json_decode()期望参数1为字符串,对象在

时间:2018-12-12 20:13:33

标签: php json

我正在尝试从json响应中获取一个字段值,但无法获取。我的PHP代码如下所示

$servers    = $sp->server_list();
print_r ($servers);

它给我的结果如下

stdClass Object ( [data] => Array ( [0] => stdClass Object ( [id] => S9rr4Un0SYlPGR6E [name] => localhost [autoupdates] => 1 [firewall] => [deny_unknown_domains] => [lastconn] => 1544645254 [lastaddress] => 50.116.20.23 [datecreated] => 1511884238 [plan] => grandfathered_coach [available_runtimes] => Array ( [0] => php5.4 [1] => php5.5 [2] => php5.6 [3] => php7.0 [4] => php7.1 [5] => php7.2 [6] => php7.3 ) ) ) ) 

我想从中获取名为id的值,并希望在我的php中使用它。我尝试了如下的json解码方法

$decoded_data = json_decode($servers,TRUE); 
$myid = $decoded_data['data']['id'];

它给我以下错误

Warning: json_decode() expects parameter 1 to be string, object given in C:\xampp\htdocs\code\new2.php on line 11

我已经搜索了许多问题并在此处回答,但无法解决它。让我知道是否有人可以帮助我。非常感谢。

1 个答案:

答案 0 :(得分:1)

$ servers是带有键数据的对象,键数据是一个数组。您可以使用索引0访问数组中的第一个元素,然后获取ID。

不需要Json解码,因为$ servers已经是一个对象。您可以使用json解码从json字符串转到对象。您可以了解有关PHP JSON decode

的更多信息
$servers = $sp->server_list();
echo $myId = $servers->data[0]->id;