【问题标题】:Extracting data values - jQuery提取数据值 - jQuery
【发布时间】:2012-04-09 09:24:52
【问题描述】:

我正在从我的 jquery 中调用 web 服务

$.ajax({
        type: "POST",
        url: "/DataService.asmx/Search",
        contentType: "application/json; charset=utf-8",
        data: "{'date' : '" + $("#txtDate").val() + "'}",
        dataType: "json",
        success: function (data) {

        },
        error: function (req, status, error) {
        }
    });

在数据中接收到一些值,例如"[{"Id":10,"Name":"abdul samathu","Mobile":"8147708287","Email":"shanish.mca@gmail.com"}]"

这里如何单独获取值,我试过了

var name=data.Name;
var mobile=data.Mobile like this, but its not working can anyone help me here

【问题讨论】:

标签: jquery web-services


【解决方案1】:

使用

data[0].Namedata[0].Mobile

【讨论】:

  • 感谢您的回复,它说错误,例如 Name is null 或 undefined,我尝试了代码 var name=data[0].Name;
  • 您可以使用console.log(data)检查数据变量中的内容;确保数据应该是一个对象,而不是一个字符串也应该有 Name 参数。响应格式必须相同,否则我们必须设置相应的条件来获取数据。
  • 如果我使用 data=jQuery.parseJSON(data.d) 它工作正常,我可以看到分隔的数组,但问题是当我将断点放在这里时它显示第 0 个索引处的值,再次在第 0 个索引内......然后只显示值,我怎样才能获得第 0 个数据的 Oth 的名称......
【解决方案2】:

我在这里做的是调用 Web 服务,循环 json 对象并打印项目名称。您可以根据需要更改它,但这有效。

$.ajax({
    url: "/DataService.asmx/Search",
    dataType: "json",
    type: "POST",
    cache: false,
    processData: false,
    data: "{'date' : '" + $("#txtDate").val() + "'}",
    contentType: "application/json; charset=utf-8",
    success: function (data) {

        if (data.d != null)
            data = data.d;

for (var i = 0; i < data.length ; i++) {
    console.log(data[i].Name);
}

    },
    error: function (x, y, z) { } // 
});

【讨论】:

  • 代替console.log(data[i].Name),放alert(data[i].Name)。
  • 如果我使用 data=jQuery.parseJSON(data.d) 它工作正常,我可以看到分隔的数组,但问题是当我将断点放在这里时它显示第 0 个索引处的值,再次在第 0 个索引内......然后只显示值,我怎样才能获得第 0 个数据的 Oth 的名称......
  • 如果您使用 firebug,并查看控制台,您可以深入了解对象并查看它们包含的内容。 Console.log(data),所以你可以看到原始对象。
【解决方案3】:

而不是 $.ajax 使用 $.getJSON() 使用请通过以下链接 http://api.jquery.com/jQuery.getJSON/

【讨论】:

    【解决方案4】:

    您的data 是一个对象数组,而不是单个对象。使用data[0].Name 访问第一个对象的名称。

    编辑:根据您的帖子,出于某种原因,data 看起来像一个字符串,而不是正确的 JSON 解码数组。请尝试以下操作:

    data = jQuery.parseJSON(data);
    console.log(data);
    var name = data[0].Name;
    console.log(name);
    

    【讨论】:

    • 嗨 DCoder 感谢您的回复,我尝试了您的代码,它显示错误,例如 Name is null 或 undefined
    • 执行此行后 data = jQuery.parseJSON(data); data的值变成了null,是什么问题
    • 如果我使用 data=jQuery.parseJSON(data.d) 它工作正常,我可以看到分隔的数组,但问题是当我将断点放在这里时它显示第 0 个索引处的值,再次在第 0 个索引内......然后只显示值,我怎样才能获得第 0 个数据的 Oth 的名称......
    猜你喜欢
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多