使用javascript和PHP的JSON概念

myt*_*mer 2 javascript php json

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

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

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

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

先感谢您.

Luk*_*nis 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
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)

  • 从技术上讲,它是JavaScript Object Notation. (2认同)