在Javascript中读取php编码的JSON
我已经使用JSON_encode在php中创建了一个JSON对象,并试图通过AJAX在javascipt中显示该对象的某些值。我在接收来自php的响应时没有问题,但是当我尝试使用JSON符号访问响应的任何值时,我会变得“未定义” 代码片段:在Javascript中读取php编码的JSON,php,javascript,ajax,json,Php,Javascript,Ajax,Json,我已经使用JSON_encode在php中创建了一个JSON对象,并试图通过AJAX在javascipt中显示该对象的某些值。我在接收来自php的响应时没有问题,但是当我尝试使用JSON符号访问响应的任何值时,我会变得“未定义” 代码片段: if (xmlhttp.readyState==4 && xmlhttp.status==200) { var response = xmlhttp.responseText; alert(response); alert(
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var response = xmlhttp.responseText;
alert(response);
alert(response.data);
}
{"data":[{"cheese":"pork"},{"cheese":"chicken"}]} // Yes, I'm hungry right now.
undefined
输出:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var response = xmlhttp.responseText;
alert(response);
alert(response.data);
}
{"data":[{"cheese":"pork"},{"cheese":"chicken"}]} // Yes, I'm hungry right now.
undefined
编辑:感谢大家的回复。希望我能给大家打个勾,但我选择了最有用的回答。您需要解析JSON:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var jdoc = JSON.parse(xmlhttp.responseText);
alert(jdoc.data[0].cheese);
}
包括在旧浏览器中。您需要解析JSON:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var jdoc = JSON.parse(xmlhttp.responseText);
alert(jdoc.data[0].cheese);
}
包括在旧浏览器中。您必须将响应转换为js对象 最简单的方法是使用eval():
您必须将响应转换为js对象 最简单的方法是使用eval(): 这不是JSON对象。这是纯文本。 使用
var myObject=eval(“(“+myJSONtext+”)”)代码>例如获取JSON(eval是邪恶的:)
这不是JSON对象。这是纯文本。
使用var myObject=eval(“(“+myJSONtext+”)”)代码>例如,要获取JSON(eval是邪恶的:)您必须解析JSON。这可以通过一个简单的调用eval
来实现,但这只能在您完全信任返回的服务器时实现,因为他可以让您的脚本执行所有操作
var data = eval('('+response+')');
我建议您使用json2.js
,这是一个小的javascript库,速度更快,可以为您处理解析
var data = JSON.parse(response);
它可以从获取,您必须解析json。这可以通过一个简单的调用eval
来实现,但这只能在您完全信任返回的服务器时实现,因为他可以让您的脚本执行所有操作
var data = eval('('+response+')');
我建议您使用json2.js
,这是一个小的javascript库,速度更快,可以为您处理解析
var data = JSON.parse(response);
它可以从中获取,看起来响应是纯文本。
试试这个:
var response = xmlhttp.responseText;
var data = new Function("return "+xmlhttp.responseText)();
看起来响应是纯文本的。
试试这个:
var response = xmlhttp.responseText;
var data = new Function("return "+xmlhttp.responseText)();
您需要将该JSON解析回JavaScript对象,请参见{或者如果您不顾一切地使用eval
,但这有安全风险}您需要将该JSON解析回JavaScript对象,请参见{或者如果您不顾一切地使用eval
,但这有安全风险}请告诉我我正在编写的代码中是否有错误。谢谢请告诉我我正在写的代码中是否有错误。谢谢