我得到一些JSON并试图对响应做一个.each。我不确定如何在这个对象上做到这一点......我试图获得Title和SysID。
这是我的JS:
var siteURL = _spPageContextInfo.webAbsoluteUrl;;
$.ajax({
url: siteURL + "/content/_api/web/lists/getbytitle('topsupportarticles')/items",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (response) {
if (response.d.results.length > 0) {
console.log(response);
//This section can be used to iterate through data and show it on screen .each should be here
console.log(response.d.results[0].Title);
$(".js-top-support").html("<li><a href=\"/pages/snDetails.aspx?articleID=KB0010606&sysID=" + response.d.results[0].SysID +
"\" class=\"js-top-support-articles\">" + response.d.results[0].Title + "</a><div class=\"x-editable-menu\"><span class=\"btn-edit\"><span class=\"icon-wrench\"></span></span></div></li>");
}
},
error: function (response) {
alert("Error: " + response);
}
});
感谢任何帮助...
答案 0 :(得分:1)
您可以选择以下两种方法之一。
JSON.parse()
方法将字符串解析为有效的json。dataType:"json"
可以将json字符串自动解析为有效的json 。对我来说,第二种方法更好。所以,你可以这样做:
$.ajax({
url: siteURL + "/content/_api/web/lists/getbytitle('topsupportarticles')/items",
method: "GET",
headers: {
"Accept": "application/json; odata=verbose"
},
dataType:"json", //<------------------------ ADDED DATATYPE HERE
success: function(response) {
if (response.d.results.length > 0) {
console.log(response);
//This section can be used to iterate through data and show it on screen .each should be here
console.log(response.d.results[0].Title);
$(".js-top-support").html("<li><a href=\"/pages/snDetails.aspx?articleID=KB0010606&sysID=" + response.d.results[0].SysID +
"\" class=\"js-top-support-articles\">" + response.d.results[0].Title + "</a><div class=\"x-editable-menu\"><span class=\"btn-edit\"><span class=\"icon-wrench\"></span></span></div></li>");
}
},
error: function(response) {
alert("Error: " + response);
}
});
但是你应该注意,如果你只有一个对象,那么你可以在这里使用response.d.results[0]
,否则使用for
循环或$.each()
迭代数组中的对象。
作为旁注,这里有两个分号:
var siteURL = _spPageContextInfo.webAbsoluteUrl;;
答案 1 :(得分:0)
如果你在jsfiddle或codepen上传代码会更好。
试试这个:
var results = response.d.results;
jQuery.each(results, function(key,value) {
console.log(key);
console.log(value);
var sysid = value.SysId;
var title = value.Title;
});