jQuery.getJSON和jQuery.parseJSON返回[object Object]?

前端之家收集整理的这篇文章主要介绍了jQuery.getJSON和jQuery.parseJSON返回[object Object]?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
编辑:我有这个问题的“着名问题”的徽章,所以我想我会回来,把我发生的事情贴在一个很好的顶部,搜索它的人立即得到答案。

基本上,我是JSON的新手。 JSON是一个对象(显然),因为它包含各种东西!所以我就像“嘿,javascript,只是弹出一个提示与所有这个JSON数据”,期望它给我的JSON数据作为一个字符串。但是javascript不这样做(这是很好的),所以它就像“嘿,这是我们如何显示对象,[object Object]”。

我可以做的是像alert(obj.DATA [0] [1]),它会向我显示对象的一点。

我真正想要的是验证我是否提供了良好的JSON数据,我可以使用JSON.stringify进行检查。

无论如何,回到我们定期的问题!

我试图通过ajax调用获取一些JSON数据,但jQuery似乎并不喜欢我的JSON。

如果我做一些像:

function init2() {
    alert("inside init2");
    jQuery.ajax({
        url: "/Mobile_ReportingChain.cfm",type: "POST",async: false,success: function (data) {
            alert(data);
            var obj = jQuery.parseJSON(data);
            alert(obj);
        }
    });
}

我从警报(数据)得到这个:

{"COLUMNS":["MFIRST_NAME","MLAST_NAME","MMDDL_NAME","MEMPLY_ID","MAIM_NBR","EMPLY_ID"],"DATA":[

["FNAME1          ","LNAME1                  ","MI1              ","000-14-7189","026-0010","000-62-7276"],["FNAME2           ","LNAME2                    ","MI2              ","000-01-2302","101-1850","000-14-7189"],["FNAME3           ","LNAME3                  ","MI3              ","000-91-3619","102-1000","000-01-2302"],["FNAME4         ","LNAME4                  ","MI4              ","000-25-9687","000-91-3619"]  

]}

哪个JSONLint说是有效的json。然而,alert(obj)给了我这个:

[object Object]

添加dataType:“json”或“text json”只是使其在alert(数据)上报告[object Object]。

我真的很想弄清楚,有人知道为什么这样做吗?我在jQuery中很新,我的目标是为每个列获取一个数组。我使用的相同的代码在不同的页面上工作,这是最令我困扰的。

alert()功能只能显示一串文字。作为其唯一的参数,它需要一个字符串或一个对象。然而,对象将被转换为可以显示的字符串。

通过jQuery获取JSON时,$ .ajax()方法自动解析JSON并将其转换为JavaScript对象。你的数据变量是一个JavaScript对象,而不是一个可能期望的JSON字符串。

由于alert()只能显示字符串,当尝试提醒您的数据对象时,您的对象将变为其字符串表示形式。 JavaScript对象的字符串表示形式为[object Object]。

为了进行调试,您可以使用console.log(数据)。然后,您可以通过浏览器开发人员工具中的控制台检查对象及其内容

function init2() {
    jQuery.ajax({
        url: "/Mobile_ReportingChain.cfm",dataType: "json",success: function (data) {
            console.log(data);
        }
    });
}

如果由于某种原因仍然希望提醒JSON数据,那么您必须将数据对象转回JSON字符串。要做到这一点,可以使用JSON.stringify

alert(JSON.stringify(data));

猜你在找的Json相关文章