无法使用jQuery从JSON读取数据

无法使用jQuery从JSON读取数据,jquery,json,ajax,Jquery,Json,Ajax,我正在打一个类似ajax的电话 $.ajax({ 键入:“获取”, url:“updateDistributionData”, 数据:{ userId:userId }, //如果收到来自服务器的响应 成功:功能(数据){ //$(“#添加分发tbody”).empty(); 控制台日志(数据); $。每个(数据、函数(键、值){ var html=''+ ''+value.year+''+ ''+value.month+''值+ ''; $('#update distribution tr')

我正在打一个类似ajax的电话

$.ajax({
键入:“获取”,
url:“updateDistributionData”,
数据:{
userId:userId
},
//如果收到来自服务器的响应
成功:功能(数据){
//$(“#添加分发tbody”).empty();
控制台日志(数据);
$。每个(数据、函数(键、值){
var html=''+
''+value.year+''+
''+value.month+''值+
'';
$('#update distribution tr').first().after(html);
});
}
});
返回下面的JSON

{
  "respData": [
    {
      "salesTargetId": "c51a411e-44ed-496c-85c0-52d76bd97c64",
      "userId": "5f32aa84-c9e7-4c27-a292-0f06ffe07b82",
      "type": "SALES",
      "month": "April",
      "year": "2021",
      "target": 1550,
      "actual": 500,
      "createdBy": "5f32aa84-c9e7-4c27-a292-0f06ffe07b82",
      "createdDate": "2021-05-06 15:51:41",
      "brand": "Cipla",
      "status": "ACTIVE"
    },
    {
      "salesTargetId": "d2053e0a-c0b4-4adf-bf98-05789cb8f72f",
      "userId": "5f32aa84-c9e7-4c27-a292-0f06ffe07b82",
      "type": "SALES",
      "month": "April",
      "year": "2021",
      "target": 3000,
      "actual": 1000,
      "createdBy": "5f32aa84-c9e7-4c27-a292-0f06ffe07b82",
      "createdDate": "2021-05-06 16:07:41",
      "brand": "Glaxo",
      "status": "ACTIVE"
    }
  ]
}
但是我在控制台上得到了下面的错误

jquery.min.js:2未捕获类型错误:无法使用'in'运算符在{“respData”:[{“salesTargetId”:“c51a411e-44ed-496c-85c0-52d76bd97c64”,“userId”:“5f32aa84-c9e7-4c27-a292-0f06ffe07b82”,“类型”:“销售”,“月份”:“四月”,“年份”:“2021”,“目标”:1550,“实际”:500,“createdBy”:“5f32aa84-4C7-4c27-a292-0F06FFE007B82”:“2021-05-06 15:51:41”,“品牌”:“Cipla”,“状态”:“活动”},{“salesTargetId”:“d2053e0a-c0b4-4adf-bf98-05789cb8f72f”,“用户ID”:“5f32aa84-c9e7-4c27-a292-0f06ffe07b82”,“类型”:“销售”,“月份”:“四月”,“年度”:“2021”,“目标”:3000,“实际”:1000,“创建日期”:“5f32aa84-c9e7-4c27-a292-0F06B82”,“创建日期”:“2021-07”,“葛兰素状态”:活动“}]}


请帮助

您的数据似乎没有解析为对象,但仍然是字符串。
将数据类型设置为json以将其解析为对象。
此外,您还应该在respData数组中循环

$.ajax({
  type: "GET",
  url: "updateDistributionData",
  data: {
    userId: userid
  },
  dataType: 'json',
  //if received a response from the server
  success: function(data) {
    //  $('#add-distribution tbody').empty();
    console.log(data);

    $.each(data.respData, function(key, value) {
      var html = '<tr>' +
        '<td>' + value.year + '</td>' +
        '<td>' + value.month + '</td>' +
        '</tr>';

      $('#update-distribution tr').first().after(html);
    });
  }
});
$.ajax({
键入:“获取”,
url:“updateDistributionData”,
数据:{
userId:userId
},
数据类型:“json”,
//如果收到来自服务器的响应
成功:功能(数据){
//$(“#添加分发tbody”).empty();
控制台日志(数据);
$.each(data.respData,函数(键,值){
var html=''+
''+value.year+''+
''+value.month+''值+
'';
$('#update distribution tr').first().after(html);
});
}
});

我的意思是…为什么要调用对象上的
。每个
,而不是对象包含的数组?
$。每个(数据
都将带回
“respData”
作为
和数组作为
。您可能要这样做
$。每个(data.respData
…@HereticMonkey,根据您的评论,我更新了$.each(data.respData,函数(键,值)现在我得到了。Uncaught TypeError:无法读取未定义的属性“length”这是您作为程序员需要使用的技能来调试代码的地方。设置断点,查看返回的数据。显然,您实际上并没有收到您所说的要获得的数据。