JSON概念与javascript& PHP

时间:2011-02-20 22:15:11

标签: php javascript json

我需要有人对这个问题有所了解。

当一个人做一个AJAX调用时,调用一个回显json_encode东西的php脚本,这样javascript可以搞乱它。注意:假设我们在php脚本中将标头设置为json。

javascript从php脚本接收的数据,我们是否必须使用eval或json的库解析它?编辑:是因为它将从php文件中收到的数据视为文本而不是javascript?

我们可以对php脚本返回的数据使用javascript dot-notation吗?或者,在我们使用点符号之前,这些数据是否必须转换为javascript对象?

提前谢谢你。

3 个答案:

答案 0 :(得分:6)

JSON只是一个字符串,它恰好符合Javascript的对象语法(因此缩写:JavaScript Object Notation。)

要将其转换为Javascript对象,您可以使用eval函数,但为了更高的安全性,建议使用现代浏览器中包含的JSON对象,或者您选择的Javascript库提供的函数:

var json = '{"thing":1, "thang":"two"}';

var obj1 = eval('('+json+')'); // easier, less secure
var obj2 = JSON.parse(json); // secure, but doesn't work everywhere
var obj3 = jQuery.parseJSON(json); // secure, works everywhere

许多库也将作为Ajax请求的一部分为您处理转换。以下是jQuery的用法:

jQuery.get('http://domain.com/path/to/request', function(obj)
{
    // string is automatically converted to an object,
    // usable as array or with dot notation
    alert(obj.thing);
    alert(obj['thang']);
},
'json'); // indicates that we are requesting json and not html

答案 1 :(得分:0)

您可以随时使用jQuery,Mootools,Prototype等库来将JSON文本解码为Javascript变量。

答案 2 :(得分:0)

JSON就像是来自PHP的序列化:)它是一种将字符串转换为对象并返回的方法:)