Jai*_*iro 1 javascript php json
我是JSON的新手,我只是想知道为什么每次我尝试将结果作为JSON传递时,浏览器(Firefox)总是让我将其保存为本地文件?这是JSON的行为吗?我认为这就像传递XML一样,浏览器只会显示它.我正在使用PHP构建JSON:
header('Content-Type: application/json');
$json = "{\n";
$json .= " \"address\": \n";
$ctr = 0;
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$json .= " {\n";
$json .= " \"id\": \"". $row['id'] ."\",\n";
$json .= " \"lon\": \"". $row['lon'] ."\",\n";
$json .= " \"lat\": \"". $row['lat'] ."\",\n";
$json .= " \"road\": \"". $row['road'] ."\" \n";
$json .= " }";
$ctr++;
$json .= ($ctr < $numrows) ? ",\n" : "\n" ;
}
$json .= "}";
echo $json;
JSON当然不是XML.如果省略Content-type标头或将其设置为text/plain,则浏览器将呈现它.但是,当前的内容类型是正确的.安装JSONView扩展,以便能够在浏览器中查看json而不是获取下载窗口.
除此之外,永远不要使用字符串功能构建JSON.PHP有json_encode()一个对象/数组/ ..并返回一个有效的JSON字符串.所以你的代码应该是这样的:
header('Content-Type: application/json');
$rows = array();
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$rows[] = $row;
}
echo json_encode($rows);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |