myt*_*mer 2 javascript php json
我需要有人对这个问题有所了解.
当一个人做一个AJAX调用时,调用一个回显json_encode东西的php脚本,这样javascript可以乱用它.注意:假设我们在php脚本中将标头设置为json.
javascript从php脚本接收的数据,我们是否必须使用eval或json的库解析它?编辑:是因为它将从php文件中收到的数据视为文本而不是javascript?
我们可以在php脚本返回的数据上使用javascript dot-notation吗?或者,在我们使用点符号之前,这些数据是否必须转换为javascript对象?
先感谢您.
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
Run Code Online (Sandbox Code Playgroud)
许多库也将作为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
Run Code Online (Sandbox Code Playgroud)