我想在我的第二台服务器上使用example.com
文件包含的域getit.php
获取JSON响应:
$arr = array('antwort' => 'jo');
echo json_encode($arr);
现在,当我尝试使用我的第一台服务器时:
$url = 'http://www.example.com/getit.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$antwort = curl_exec($ch);
curl_close($ch);
$antwort = json_decode($antwort);
echo '<pre>';
var_dump($antwort);
echo '</pre>';
我明白了:
object(stdClass)#2 (1) {
["antwort"]=>
string(4) "jo"
}
而不是普通数组,如何将其转换为数组?
我已经尝试了$antwort = json_decode(json_encode($antwort), True);
,但我只得到一个奇怪的字符串?!
答案 0 :(得分:2)
JSON的定义是:JavaScript Object Notation。 JavaScript数组只能有数字键。你的数组有字符串键,因此它必须编码为JavaScript OJBECT ,它允许使用字符串键。
告诉json_decode()您想要数组:
$arr = json_decode($json, true);
^^^^
根据the docs
你是怎么做json_decode(json_encode($antwort))
的?返回字符串的唯一方法是编码你从curl_exec()
获得的$ antwort。