我正在尝试从某个列表中的某些列(字段)中获取列表项数据。
据我了解,我需要要从中提取列表数据的字段的 InternalName。
已编辑以包含 $expand 以在一个 REST 响应中同时获取字段和项目信息:
已编辑以包含我当前用于创建选项的循环。我将所有数据存储在值中,用?分隔并在选择时将数据拆分到 HTML 表中。
function execCrossDomainRequest() {
var executor;
executor = new SP.RequestExecutor(appweburl);
executor.executeAsync(
{
url: appweburl +
"/_api/SP.AppContextSite(@target)/web/lists/getByTitle('Weights%20and%20Thickness')" +
"?$select=Fields,Items&$expand=Fields,Items&@target='" +
hostweburl + "'",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: onDataReturned,
error: onError
}
);
}
function onDataReturned(data) {
var jsonObject = JSON.parse(data.body);
var resultsFields = jsonObject.d.Fields.results;
var resultsItems = jsonObject.d.Items.results;
var calculateHTML = '';
for (var i = 0; i < results.length; i++) {
calculateHTML = calculateHTML +
"<option value='" + results[i].mvof + "?" + results[i].oc4d + "?" + results[i].ngot + "?" +
results[i].iv4s + "?" + results[i].j6i7 + "?" + results[i].OData__x006c_yg2 + "?" +
results[i].OData__x006f_po9 + "'>" +
results[i].Title +
"</option>";
}
document.getElementById("selectPieceDropdown").innerHTML = calculateHTML;
}
我只想显示 Items 结果的 movf、oc4d、ngot、iv4s 和 j6i7 字段中的数据。每个 Items 结果实际上还有大约 20 个字段,但为简洁起见,我删除了它们。我的 JSON 响应:
{
d: {
__metadata: {...}-
Fields: {
results: [64]
0: {...}-
1: {...}-
2: {...}-
3: {...}-
4: {...}-
5: {...}-
6: {...}-
7: {
__metadata: {...}-
InternalName: "mvof"
StaticName: "mvof"
Title: "Thickness"
}
}
Items: {
results: [32]
0: {
Title: "#10 - Regular"
mvof: 0.178
oc4d: 1.96
ngot: null
iv4s: null
j6i7: null
OData__x006c_yg2: null
OData__x006f_po9: null
}
}
}
}
如何获取字段的 InternalName,然后从 Items 结果中访问该字段数据?我试过:
var internalThickness = resultsFields[7].InternalName;
然后尝试使用它:
resultsItems.internalThickness
返回'未定义'
谢谢,我已经从这里的回复和文档链接中学到了很多东西。我只是在拼凑这个时遇到了麻烦。