我在服务器中有一个Json文件:
file.json :
{"max":"512", "min":"1", ...
我通过ajax调用得到它:
$.ajax({
url: 'load_json.php',
type: "POST",
data: { id: id },
dataType: 'json',
success: function(resp) {
console.log(resp.json.max);
}
});
其中 load_json.php 是:
$json = file_get_contents("file.json");
$response = array('json' => $json);
echo json_encode($response);
但是在控制台中我得到 undefined 。为什么呢?
可能的解决方案是:
$response = array('json' => json_decode($json));
这是最有效的解决方案吗?
答案 0 :(得分:0)
在你的php中你正在读取file.json作为一个字符串,然后这个字符串放入数组,所以javascript无法将其解析为一个合适的json对象。在php代码中使用json_decode函数:
$json = file_get_contents("file.json");
$response = array('json' => json_decode($json)); //here
echo json_encode($response);
或:
$json = file_get_contents("file.json");
$response = '{"json":' . $json . '}'; //here
echo $response;
但使用第一种解决方案。