我试图从JSON格式的PHP调用中获取数据,我已经设置了。当我回显JSON数据时,会以正确的格式返回
我正在尝试处理数据并将它们发送到输入字段。如果我手动将JSON数据添加到我的jQuery脚本中它可以正常工作,但是如果我尝试从AJAX调用中调用返回的数据它就不起作用,即使数据结构相同也是如此。
这是有效的
success: function(data) {
var myobj = {"title":"botskonet"}
for( k in myobj ){
alert(myobj[k]);
document.getElementById(k).value = myobj[k];
}
}
但是,如果我使用它,它不起作用
success: function(data) {
var myobj = data <--which if I echo it looks like this {"title":"botskonet"}
for( k in myobj ){
alert(myobj[k]);
document.getElementById(k).value = myobj[k];
}
}
如果我从数据返回中回显JSON调用,则它与手动调用相同。
{"title":"botskonet"}
所以我不确定手动编写JSON调用之间的区别是什么,因为它可以从AJAX中调用它,以及为什么它不起作用。
答案 0 :(得分:2)
您从PHP返回的是JSON格式的字符串,因此您需要使用JSON.parse(data);
将其解析为客户端,以将其转换为JavaScript对象。
答案 1 :(得分:1)
虽然您尚未发布整个代码,但我假设您正在使用Jquery中的一个可用方法来发出AJAX请求。您可以在此类方法中指定dataType
参数,该参数主要用于声明您希望从服务器获得的数据类型。
以下是一个例子:
$.ajax({
type: "POST",
url: <your-request-url>,
data: <your-data>,
success: function(){ ... },
dataType: "json"
});