首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从JQuery.ajax成功数据中解析JSON

从JQuery.ajax成功数据中解析JSON
EN

Stack Overflow用户
提问于 2011-03-13 19:31:18
回答 9查看 399.9K关注 0票数 79

我在从JQery.ajax调用中获取JSON对象的内容时遇到问题。我的电话:

代码语言:javascript
复制
$('#Search').click(function () {
    var query = $('#query').valueOf();
    $.ajax({
        url: '/Products/Search',
        type: "POST",
        data: query,
        dataType: 'application/json; charset=utf-8',
        success: function (data) {
            alert(data);
            for (var x = 0; x < data.length; x++) {
                content = data[x].Id;
                content += "<br>";
                content += data[x].Name;
                content += "<br>";
                $(content).appendTo("#ProductList");
               // updateListing(data[x]);
            }
        }
    });
});

JSON对象似乎被正确返回,因为"alert(data)“显示以下内容

代码语言:javascript
复制
[{"Id": "1", "Name": "Shirt"}, {"Id": "2", "Name":"Pants"}]

但是当我尝试使用以下命令向页面显示Id或名称时:

代码语言:javascript
复制
content = data[x].Id;
content += "<br>";
content += data[x].Name;
content += "<br>";

它向页面返回"undefined“。我做错了什么?

谢谢你的帮助。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-03-13 19:35:31

数据将以JSON的字符串表示形式返回,而不是将其转换回JavaScript对象。将dataType设置为仅'json'即可自动转换。

票数 113
EN

Stack Overflow用户

发布于 2013-07-02 03:18:17

我建议您使用:

代码语言:javascript
复制
var returnedData = JSON.parse(response);

将JSON字符串(如果只是文本)转换为JavaScript对象。

票数 74
EN

Stack Overflow用户

发布于 2015-07-15 14:20:30

确保这种类型的错误(使用字符串而不是json)不会发生的一种方法是查看alert中打印的内容。当你这样做的时候

代码语言:javascript
复制
alert(data)

如果data是一个字符串,它将打印其中包含的所有内容。但是,如果打印是json对象。您将在警报中获得以下响应

代码语言:javascript
复制
[object Object]

如果这是响应,那么您可以确保可以将其用作对象(在本例中为json)。

因此,您需要先将字符串转换为json,然后再通过执行以下操作使用它:

代码语言:javascript
复制
JSON.parse(data)
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5289078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档