how to read people picker column using caml query
-
15-02-2021 - |
Question
I am trying below code but unable to read name from Custodian column value which is people picker, it always show me id
jquery.ajax({
url: `${reactHandler.props.siteurl}/`+_options[i].key+`/_api/web/Lists/GetByTitle('Documents')/GetItems(query=@v1)?@v1={'ViewXml':'<View><ViewFields><FieldRef Name=\"Title\"/><FieldRef Name=\"Date\"/><FieldRef Name=\"Business\"/><FieldRef Name=\"Number\"/><FieldRef Name=\"Business\"/><FieldRef Name=\"Custodian\"/></ViewFields><Query><Where><And><Neq><FieldRef Name=\"_IsRecord\"/><Value Type=\"Computed\">0</Value></Neq><IsNotNull><FieldRef Name=\"_IsRecord\" /></IsNotNull></And></Where></Query></View>'}`,
type: "POST",
headers: {
"Accept": "application/json;odata=verbose",
"Content-Type": "application/json;odata=verbose",
"X-RequestDigest": data.d.GetContextWebInformation.FormDigestValue,
"X-HTTP-Method": "POST"
//"X-RequestDigest": jquery("#__REQUESTDIGEST").val()
},
success: function(data) {
if (data.d.results.length > 0) {
for (var i = 0; i < data.d.results.length; i++) {
var odata = data.d.results[i];
_items.push({
key: odata.ID,
name: odata.Number ,
value: odata.ID,
iconName: odata.ID,
fileType: odata.ID,
modifiedBy: odata.Title,
dateModified: odata.Date.split('T')[0],
dateModifiedValue: odata.Business.Label,
fileSize: odata.Business.Label,
fileSizeRaw: odata.Business.Label,
Custodian:odata.Custodian
});
//console.log(items);
}
La solution
You could use $expand in rest api to get user name.
/_api/web/lists/getbytitle('test')/items?$select=people/Id,people/Name&$expand=people
Similar issue:
My test caml for your reference:
`<View>
<Query>
<Where><Eq><FieldRef Name='ID' /><Value Type='Counter'>27</Value></Eq></Where>
</Query>
<ViewFields><FieldRef Name='people' /><FieldRef Name='managed' /></ViewFields>
</View>
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange