嗨,所以我试图获取两组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>
运行此命令时,我得到jquery-3.3.1.min.js:2 Uncaught TypeError: Cannot use 'in' operator to search for 'length' in "successsuccess"
,因此将$.each(JSON.stringify(data), function(i) {
更改为$.each(JSON.parse(data), function(i) {
。
我得到以下内容
VM1330:1 Uncaught SyntaxError: Unexpected token s in JSON at position 0
在这里对您的任何帮助或代码的改进将不胜感激。
谢谢。
答案 0 :(得分:1)
实际数据似乎包含在传递给完成函数的结构的第一个元素中。因此,通过稍微更改代码以定位每个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);
});
});