如何在Jquery ajax中读取名称和值对中的JSONP响应数据。

时间:2015-07-07 08:27:30

标签: javascript jquery ajax json jsonp

我正在尝试使用JSONP技术从其他域读取JSON文件

这是JSON

b

这是Jquery代码

[[prototype]]

从上面的代码我希望得到警报输出

b.a

但我正在接收警报

A.prototype.a

我能知道我需要做些什么才能像我的预期一样得到出局

callback({
  "response":{"docs":[
      {
        "FirstName":"qwe",
        "LastName":"asd",
        "Age":"30"},
      {
        "FirstName":"zxc",
        "LastName":"bnm",
        "Age":"40"},

        .
        .
        .
      {
        "FirstName":"poi",
        "LastName":"lkj",
        "Age":"20"},
      ]},
})

提前致谢

3 个答案:

答案 0 :(得分:3)

您的$each函数正在迭代docs数组。传递给它的参数是:

  • key:doc对象的索引
  • val:doc对象本身

相反,您可能还希望使用另一个循环迭代每个(键,值)对:

success: function (msg) {
  $.each(msg.response.docs, function (index, doc){
      $.each(doc, function (key, val) {
        console.log(key + 'is' + val);
      });
  }
}

答案 1 :(得分:0)

您应首先迭代一个数组,然后迭代单个对象:

这样的事情:

success: function (msg) {
    $.each(msg.response.docs, function (singleDoc){
        $.each(singleDoc, function (key, value){
            alert(key +"is"+value);
        }
    }
}

答案 2 :(得分:0)

当你使用每个jquery方法时,你得到索引作为第一个参数,在第二个参数中,你得到迭代顺序的每个对象。

所以你需要使用这样的代码

  $.each(msg.response.docs, function (key,value){

      console.log('FirstName is '+value.FirstName);

      console.log('LastName is'+value.LastName); 
      .
      .
      .
    });