我正在尝试实现一个 php 客户端,它将一个 HTTP GET 发送到服务器,该服务器发送一个带有返回信息的 JSON 对象。一旦我的 php 脚本收到它,我就知道如何解码 JSON,但是我将如何实际获取它呢?
编辑:注意 - 我向服务器发送一个 HTTP GET,它会生成并发送回一个 JSON 文件。它不是位于服务器上的文件。
$json = file_get_contents('http://somesite.com/getjson.php');
浏览器根据服务器的响应采取不同的行动。您向服务器发出什么类型的请求(GET、POST 等)并不重要,但要返回 JSON 作为响应,您必须在发出请求的脚本中设置标头:
header('Content-Type: application/json;charset=utf-8;');
然后回显 JSON 字符串,例如:
//...populating your result data array here...//
// Print out the JSON formatted data
echo json_encode($myData);
然后,用户代理将获取 JSON 字符串。如果 AJAX 发出请求,那么您可以简单地将结果解析为您可以处理的 JavaScript 对象,如下所示:
//...AJAX request here...//
// Parse result to JavaScript object
var myData=JSON.parse(XMLHttp.responseText);
标头本身并不是真正必要的,但它是一种很好的做法。JSON.parse() 无论如何都可以解析响应。