Javascript 无法字符串化或解析JSON数据,AJAX请求

Javascript 无法字符串化或解析JSON数据,AJAX请求,javascript,json,Javascript,Json,大家好,我正在尝试获取两组JSON数据,并将它们组合成一组数据,以便根据需要使用这些数据,但是,我遇到了一个小问题 这是我的密码 <script> (function() { const jobPositions = document.getElementById('jobPositions'); const jobs = $.ajax({ dataType: "json", url: "https://www.welcomekit.co

大家好,我正在尝试获取两组JSON数据,并将它们组合成一组数据,以便根据需要使用这些数据,但是,我遇到了一个小问题

这是我的密码

<script>
  (function() {
    const jobPositions = document.getElementById('jobPositions');

    const jobs = $.ajax({
      dataType: "json",
      url: "https://www.welcomekit.co/api/v1/external/jobs?access_token=REDAC&organization_reference=REDAC&websites=true&status=published",
      success: function(result) {}
    });


    const jobDepartments = $.ajax({
      dataType: "json",
      url: "https://www.welcomekit.co/api/v1/external/departments?access_token=REDAC&organization_reference=REDAC",
      success: function(result) {}
    });

    $.when(jobs, jobDepartments).done(function(a1, a2) {
      var data = a1[1] + a2[1];

      $.each(JSON.stringify(data), function(i) {
        var start = i++;

        console.log(data);

        if (start) {
          $(jobPositions).append('\
          <a target="_blank" href="'+ a1.websites.url +'" class="jobPosition-item d-md-flex justify-content-between align-items-center flex-wrap">\
            <div>\
              <span class="jobPositions-name">' + a1.name + '</span>\
            </div>\
            <div class="right right-info d-flex align-items-center">\
              <span class="jobPositions-profession">' + a2.department_id + '</span>\
              <div class="d-flex">\
                <img src="/hubfs/www/about/white-icon-arrow.png" height="11" width="11" alt="arrow">\
              </div>\
            </div>\
          </a>\
          ');
        };
      });
    });
  })();
</script>
如有任何帮助或对代码的改进,我们将不胜感激


谢谢。

实际数据似乎包含在传递到done函数的结构的第一个元素中。因此,通过稍微更改代码以针对每个a1和a2的第一个元素,它应该可以工作:

$.when(jobs, jobDepartments).done(function(a1, a2) {

  $.each(a1[0], function (i, item) {
    // get the department
    var dept = a2[0].find(jobDept => jobDept.id == item.department_id);
    // get its name
    var deptName = dept && dept.name || "Unknown Dept";

    console.log(deptName);

  });

});

请尝试在AJAX请求中指定dataType:json的$.eachdata。这意味着jQuery在给出响应之前已经解析JSON并将数据转换为对象。不需要再次解析它。我不明白你为什么要把它串起来…在一个字符串中循环是没有用的更新你的问题显示a1,a2和data@ADysonI get Uncaught TypeError:无法使用“in”运算符在SuccessSuccess中搜索“length”成功是否确定两个请求都以成功结束?添加错误句柄如何知道哪个工作部门与哪个工作有关,或者总是有一个工作和一堆工作部门都与该工作有关?似乎我只能在传入特定项时传递内容,即const deptName=dept[1]。name;实际上,它并没有遍历所有的项。我尝试过像这样对数据进行字符串化,但仍然没有定义
$.when(jobs, jobDepartments).done(function(a1, a2) {

  $.each(a1[0], function (i, item) {
    // get the department
    var dept = a2[0].find(jobDept => jobDept.id == item.department_id);
    // get its name
    var deptName = dept && dept.name || "Unknown Dept";

    console.log(deptName);

  });

});