我需要有人对这个问题有所了解。
当一个人做一个AJAX调用时,调用一个回显json_encode东西的php脚本,这样javascript可以搞乱它。注意:假设我们在php脚本中将标头设置为json。
javascript从php脚本接收的数据,我们是否必须使用eval或json的库解析它?编辑:是因为它将从php文件中收到的数据视为文本而不是javascript?
我们可以对php脚本返回的数据使用javascript dot-notation吗?或者,在我们使用点符号之前,这些数据是否必须转换为javascript对象?
提前谢谢你。
答案 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的序列化:)它是一种将字符串转换为对象并返回的方法:)