0

使用http://objectmix.com/javascript/389546-reading-json-object-jquery.html作为起点,我一直在阅读很多关于 JSON 的内容。不幸的是,我完全是初学者,无法理解创建 JSON 对象的基础知识。

我创建了一个名为 getContact.php 的 PHP 页面

<?php
"Contact": {
    "ID" : "1",
    "Name" : "Brett Samuel"
}
?>

以及一个带有以下代码的 javascript 文件:

$.getJSON('getContacts.php', function(data) {
    var obj = (new Function("return " + data))();
    alert(data.Contact.Name)
});

此页面http://msdn.microsoft.com/en-us/library/bb299886.aspx表明我的基本方法是正确的。谁能告诉我为什么这不起作用?绝对没有任何反应。

提前致谢。

4

3 回答 3

4

您的 PHP 文件包含 JSON,它不是有效的 PHP,因此会出错。

如果您使用 PHP,构建 JSON 的最简单方法是首先将数据准备为数组(根据需要关联或索引),然后简单地通过json_encode(). (您也可以使用相应的json_decode().

[编辑 - 作为对评论的回应,只需查看 PHP 文档即可json_encode()- 这是非常不言自明的。您获取一个数组,将其传递给json_encode(),然后您将获得一个 JSON 字符串。

$arr = array('one', 'two', 'three');
echo json_encode($arr); //JSON string
于 2012-07-30T11:57:50.180 回答
1

JSON 不是一种编程语言,它当然不能像 PHP 那样执行。它只是一种文件格式。如果您希望您的 Web 服务器提供静态 JSON 文件,只需将其作为文件名.json 放入文件系统中,不带任何<?php标签。(当然,和 HTML 一样,你也可以把它变成一个.php文件,只是其中没有任何 PHP,除了设置 Content-Type 的东西,因为文件后缀不会自动完成。但这很浪费。)

如果你想用 PHP 动态生成一些 JSON,那么你必须编写 PHP 代码来打印出来,例如:

<?= json_encode( array( 
      'Contact' => array('ID' => 1, 'Name' => 'Brett Samuel' ) 
    ) ); ?>

另外,请注意 JSON 文档必须是完整的对象;你的需要另一组围绕整个事物的花括号(如上述代码段的输出)。

于 2012-07-30T12:02:04.110 回答
0

你需要使用 json_encode 和 json_decode 参考这个json php 手册

于 2012-07-30T12:00:08.797 回答