将JSON从PHP返回到JavaScript?

Aqu*_*Tub 129 javascript php json

我有一个PHP脚本,通过jQuery AJAX调用.我希望PHP脚本将JSON格式的数据返回给javascript.这是PHP脚本中的伪代码:

$json = "{";
foreach($result as $addr)
{
    foreach($addr as $line)
    {
        $json .= $line . "\n";
    }
    $json .= "\n\n";
}
$json .= "}";
Run Code Online (Sandbox Code Playgroud)

基本上,我需要在$ json中插入两个for循环的结果.

Ken*_*ric 192

Php具有内置的JSON Serialising功能.

json_encode
Run Code Online (Sandbox Code Playgroud)

json_encode

如果你可以并且没有遭受Not Invented Here综合症,使用它.

  • 非常好,谢谢.在发布SO之前我实际上已经查看了这个,但我认为它不会在我的主机上可用. (2认同)

aes*_*ede 130

以下答案中缺少以下几点:

  1. 在PHP中设置标题:

    header('Content-type: application/json');
    echo json_encode($array);
    
    Run Code Online (Sandbox Code Playgroud)
  2. json_encode()可以返回JavaScript 数组而不是JavaScript 对象,请参阅:
    从PHP脚本返回JSON
    在某些情况下,由于数组和对象不相同,因此这一点非常重要.

  • 重要的是要注意,数据是“回显”而不是“返回”!当我第一次学习这个概念时,这让我很久了。因为在一般编程中,几乎所有内容通常都不会“打印”返回。 (2认同)

Óla*_*age 83

PHP的文档中有一个JSON部分.你需要PHP 5.2.0.

从PHP 5.2.0开始,JSON扩展默认捆绑并编译为PHP.

如果不这样做,这里是您可以安装的PECL库.

<?php
    $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

    echo json_encode($arr); // {"a":1,"b":2,"c":3,"d":4,"e":5}
?>
Run Code Online (Sandbox Code Playgroud)


Juk*_*bom 13

通常,您会对接收端的数据结构感兴趣:

json_encode($result)
Run Code Online (Sandbox Code Playgroud)

这也将保留数组键.

请记住,json_encode仅适用于utf8编码的数据.