Javascript 无法字符串化或解析JSON数据,AJAX请求
大家好,我正在尝试获取两组JSON数据,并将它们组合成一组数据,以便根据需要使用这些数据,但是,我遇到了一个小问题 这是我的密码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
<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);
});
});