将 JSON 从 PHP 返回到 JavaScript?

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

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

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

350712 次浏览

PHP 有一个内置的 JSON 序列化函数。

json_encode

Json _ encode

请使用,如果你可以和不遭受非发明在这里综合征。

在 PHP 的文档中有一个 JSON 部分,但是您需要 PHP 5.2.0。

从 PHP5.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}
?>

通常情况下,您还会对接收端的数据具有某种结构感兴趣:

json_encode($result)

这也将保留数组键。

请记住,json _ encode 只能处理 utf8编码的数据。

您可以使用 PHP 的简单 JSON。它发送的头帮助您伪造 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();
?>

以下是前面几个答案中缺失的几点:

  1. PHP 中的设置头:

    header('Content-type: application/json');
    echo json_encode($array);
    
  2. json_encode() can return a JavaScript array instead of JavaScript object, see:
    Returning JSON from a PHP Script
    This could be important to know in some cases as arrays and objects are not the same.

$msg = “您输入了错误的用户名或密码”; $response so = json _ encode ($msg) ;

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