从PHP返回JSON到JavaScript?

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

$json = "{"; foreach($result as $addr) { foreach($addr as $line) { $json .= $line . "\n"; } $json .= "\n\n"; } $json .= "}"; 

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

Php具有内置的JSON序列化function。

 json_encode 

json_encode

如果可以的话, 使用这个,不要在这里发现这个综合征。

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} ?> 

以前的答案中缺less了一些内容:

  1. 在PHP中设置标题:

     header('Content-type: application/json'); echo json_encode($array); 
  2. json_encode()可以返回JavaScript 数组而不是JavaScript 对象 ,请参阅:
    从PHP脚本返回JSON
    在某些情况下,这可能很重要,因为数组和对象是不一样的。

通常你会对接收端的数据也有一些结构感兴趣:

 json_encode($result) 

这也将保留数组键。

请记住,json_encode只适用于utf8编码的数据。

您可以使用简单的JSON for PHP 。 它发送标题帮助你伪造JSON。

看起来像 :

 <?php // Include the json class include('includes/json.php'); // Then create the PHP-Json Object to suits your needs // Set a variable ; var name = {} $Json = new json('var', 'name'); // Fire a callback ; callback({}); $Json = new json('callback', 'name'); // Just send a raw JSON ; {} $Json = new json(); // Build data $object = new stdClass(); $object->test = 'OK'; $arraytest = array('1','2','3'); $jsonOnly = '{"Hello" : "darling"}'; // Add some content $Json->add('width', '565px'); $Json->add('You are logged IN'); $Json->add('An_Object', $object); $Json->add("An_Array",$arraytest); $Json->add("A_Json",$jsonOnly); // Finally, send the JSON. $Json->send(); ?>