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