将JSON从PHP返回到JavaScript?

时间:2009-03-25 16:00:48

标签: php javascript json

我有一个通过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。

6 个答案:

答案 0 :(得分:186)

Php具有内置的JSON Serialising功能。

json_encode

json_encode

使用它,如果你可以并且不会遭受非发明的综合症。

答案 1 :(得分:123)

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

  1. 在PHP中设置标题:

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

答案 2 :(得分:82)

PHP的文档中有一个JSON section。你需要PHP 5.2.0。

  

自PHP 5.2.0起,JSON扩展默认捆绑并编译为PHP。

如果不这样做,可以安装PECL library

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

答案 3 :(得分:13)

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

json_encode($result)

这也将保留数组键。

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

答案 4 :(得分:4)

您可以使用Simple 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();
?>

答案 5 :(得分:0)

$ msg =“您输入了错误的用户名或密码”;         $ responso = json_encode($ msg);

echo "{\"status\" : \"400\", \"responce\" : \"603\", \"message\" : \"You Enter Wrong Username OR Password\", \"feed\":".str_replace("<p>","",$responso). "}";