附加到变量时的JSON数据格式

时间:2015-04-11 19:37:14

标签: jquery json

我试图从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中调用它,以及为什么它不起作用。

2 个答案:

答案 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"
});

此处有更多详情:https://api.jquery.com/jquery.post/