Jquery 提取 json 表示 {41: Array[2], 42: Array[1]}

Jquery excracting json representations {41: Array[2], 42: Array[1]}

我收到来自 Ajax 电话的以下回复 {41: Array[2], 42: Array[1]} 它基本上是一个从服务器发回的 python 字典,如下所示: {41: [0:15740, 1:15741], 42: [0:15744]}

因此,在 Jquery 中,我需要能够获取存储在此 json 表示中的键和匹配值,并能够在警报中显示它们。这是我到目前为止的代码,但它一直显示为 data.length: undefined 尽管它确实在之前的行中记录了数据。

$.ajax({
    url: target,
    dataType: 'json',
    type: 'POST',
    data: JSON.stringify(myData),
    xhrFields: {
        withCredentials: true
    }
})
.done(function(data) {
    console.log('done:', data);
    console.log('data.Length : :', data.length);

    for (var x = 0; x < data.length; x++) {
        spreadsheet = data[x].Id;

        spreadsheet += "<br>";
        spreadsheet += data[x].Name;
        spreadsheet += "<br>";
        console.log('Spreadsheet : ' + spreadsheet)
    }
})

这里的数据可能是一个对象。尝试使用 for--in 例如for(var x in data) 取代了 for 循环。它可能会解决您的问题。

 for (var x in data) {
        spreadsheet = data[x].Id;

        spreadsheet += "<br>";
        spreadsheet += data[x].Name;
        spreadsheet += "<br>";
        console.log('Spreadsheet : ' + spreadsheet)
    }

你可以这样试试:

var obj = data;

jQuery.each(Object.keys(obj), function(i, x){
  spreadsheet = data[x].Id;

  spreadsheet += "<br>";
  spreadsheet += data[x].Name;
  spreadsheet += "<br>";
})

如果接收到的'data'值为字符串

,请转换为Json格式
var jsonData= JSON.parse(data) //if 'data' is string type.

请分享您收到的类型数据或部分样本数据。

如果响应是JSON,您首先需要解析它。

data=JSON.parse(data)

然后你需要像这样迭代对象

for(var key in data) 
{// do stuff here
//you can access the array like this
data[key][0]
//or you can further iterate over the array
for(var x=0; x<data[key].length; x++)
{
//now you can access array element like 
//this
data[key][x]
}
}

编辑:由于响应不是 json,因此您不需要该声明。

JSON.parse(data)

for(var key in obj) 
{// do stuff here
var elem;
//or you can further iterate over the array
for(var x=0; x<obj[key].length; x++)
{
//now you can access array element like
//this
console.log(obj[key][x].slice(2));
 elem=obj[key][x].slice(2);//now elem will contain the values 15740,15741
//,15744
}