You need to sign in to do that
Don't have an account?
kpn
Removing null values in REST API response
I just wanted to remove the null values from the response, how can I achieve it?
For exmaple:
So on success, the response still has the Error Code & Message set to NULL. I just need to remove the same from the response to keep only what is required, how to achieve this?
For exmaple:
global class ResponseHandler { public String Status {get; set;} public List<sObject> result {get;set;} public String Message {get;set;} public String ErrorCode {get; set;} }
@RestResource(urlMapping='/testapi/*') global class OyeCodeRestAPI { @HttpGet global static ResponseHandler GET() { ResponseHandler response = new ResponseHandler(); Contact returnContact = getContact(); if(returnContact!=null) { response.Status = 'Success'; List<sObject> thesObjectList = new List<sObject>(); thesObjectList.add((sObject)returnContact); response.Data = thesObjectList; } else { response.ErrorCode = 'Error Code -0002'; response.Status = 'error'; response.Message = 'Fail : No Record Found'; } return response; } public class NoRecordException extends Exception {} public static Contact getContact() { RestRequest req = RestContext.request; RestResponse res = RestContext.response; String ContactId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1); Contact result; try{ result = [SELECT Id, lastname, firstName, phone, email FROM Contact WHERE Id = :ContactId]; } Catch(System.QueryException e) { throw new NoRecordException('Unable to find the record maching Id : '+ContactId); } return result; } }
So on success, the response still has the Error Code & Message set to NULL. I just need to remove the same from the response to keep only what is required, how to achieve this?
Use the JSON.serialize method, and place the response in RestContext.response.responseBody and make your get method void