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);
                            
                            }
Était-ce utile?

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:

https://social.technet.microsoft.com/Forums/Exchange/en-US/677bfd8b-14cc-477b-9bfa-c8488d2f3219/expand-user-field-in-rest-caml?forum=sharepointgeneral

Updated: enter image description here

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
scroll top