初学者创建和阅读JSON对象

时间:2012-07-30 11:56:03

标签: php jquery json

使用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表明我的基本方法是正确的。谁能告诉我为什么这不起作用?绝对没有任何反应。

提前致谢。

3 个答案:

答案 0 :(得分:4)

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

如果您正在使用PHP,那么构建JSON的最简单方法是首先将数据准备为数组(根据需要进行关联或索引),然后通过json_encode()进行转换。 (您也可以使用相应的json_decode()解码JSON。

[编辑 - 回应评论,只看一下json_encode()的PHP文档 - 这是非常自我解释的。你拿一个数组,把它传递给json_encode(),然后你得到一个JSON字符串。

$arr = array('one', 'two', 'three');
echo json_encode($arr); //JSON string

答案 1 :(得分:1)

JSON不是一种编程语言,它当然不能像PHP那样执行。它只是一种文件格式。如果您希望Web服务器提供静态JSON文件,只需将其作为 filename .json放在文件系统中,不带任何<?php标记。 (当然,与HTML一样,您也可以将其设为.php文件,并且除了设置Content-Type之外没有任何PHP,因为文件后缀不会自动执行。但是这太浪费了。)

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

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

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

答案 2 :(得分:0)

你需要使用json_encode和json_decode 请参阅此json php manual