我收到了来自服务的响应,print_r()
显示了一个数组,但它似乎与通常的数组不同。如果我打印array_values
,它是空的。PHP:
print_r($token);
//Result: Array ( [{"access_token":"123","token_type":"bearer"}] => )
print_r(array_values($token));
//Result: Array ( [0] => )
为什么array_values
中没有列出access_token和token_type值?
答案不是JSON,这不是因为你有一个JSON类型的数组。这是因为您的数组中没有值。
//Result: Array ( [{"access_token":"123","token_type":"bearer"}] => )
该数组有一个没有值的索引,因此array_values
不显示任何内容。您错误地创建了该数组:(
我可以用这个复制你的输出:
$token = array('{"access_token":"123","token_type":"bearer"}' => '');
这是因为你有一个数组的关键
'{"access_token":"123","token_type":"bearer"}'
但没有价值。
要访问数组键中的JSON字符串,可以执行以下操作:
$keys = array_keys($token);
print_r($keys[0]);
要访问JSON对象,可以进一步执行
print_r(json_decode($keys[0]));
输出:
(
[access_token] => 123
[token_type] => bearer
)
演示:Fiddle