function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Gaurav AgnihotriGaurav Agnihotri 

Deserialization of JSON

Gurus, 
I am having issues trying to parse JSON returned from the HTTP response. 
Below is my APEX code:
public class JiraGetIssue 
{
    public String baseUrl = 'https://beta.pelco.com:8443/tasks/rest/api/latest/issue/SUSTAIN-4050';   // Base URL of your JIRA instance
    //public String baseUrl = 'https://beta.pelco.com:8443/tasks/rest/api/latest/issue/'; 
    public String username = 'salesforce.connector'; // JIRA username
    public String password = 'password'; // JIRA password // Constructs Basic Http Authentication header from provided credentials
    public String authHeader()
    { 
        Blob headerValue = Blob.valueOf(username+':'+password); 
        return 'Basic ' + EncodingUtil.base64Encode(headerValue);        
    }
    public void Execute()
    {
        Http http = new Http();
        HttpRequest request = new HttpRequest();
        string fields   =   'key,'+
            'assignee,'+
            'project,'+
            'summary,'+
            'created,'+
            'updated,'+
            'priority,'+
            'status';
        system.debug(fields);
        integer startAt = 0;
        integer maxResults= 10;
        string searchString='SUSTAIN';
        //String CreateIssueJsonJIra= '{"fields": {"summary":"test create jira1","description":"test create jira1" ,"issuetype":{"name": "Bug"}}} ';       
        //String CreateIssueJsonJIra= '{"fields": { "project":{  "key": "SUSTAIN"},"summary": "REST ye merry gentlemen2","description": "Creating of an issue using project keys and issue type names using the REST API2","issuetype": {"name": "Bug"}}}';
        request.setMethod('GET');
        //Set HTTPRequest header properties
        request.setHeader('Accept', 'application/json');
        request.setHeader('Content-Type','application/json');
        Blob headerValue = Blob.valueOf(username+':'+password);
        request.setHeader('Authorization','Basic '+ EncodingUtil.base64Encode(headerValue));
        baseUrl='https://beta.pelco.com:8443/tasks/rest/api/latest/search?jql=summary~"gentlemen*"&project=SUSTAIN&fields=key,summary,status,priority,status,created,updated,assignee';
        //baseUrl=baseUrl+searchString+'"';
        //baseUrl=baseUrl+ '&fields=' + fields + '&startAt='+ startAt +'&maxResults='+maxResults;
        system.debug(baseUrl);
        request.setEndpoint(baseUrl);
        HttpResponse response = http.send(request);
        // Log the JSON content
        System.debug('JSON Response: ' + response.getBody());
        string JSONContent = response.getBody();
        
        system.debug(jiraGetIssueResponse.parse(JSONContent));
        JSONParser parserJira = JSON.createParser(JSONContent);
        
        //system.debug('parserJira ='+parserJira);
        
    
        while (parserJira.nextToken() != null) 
        {
            // Start at the array of issues.
            if(parserJira.getCurrentToken() == JSONToken.START_ARRAY) 
            {
                while (parserJira.nextToken() != null) 
                {
                    if ((parserJira.getCurrentToken() == JSONToken.START_OBJECT))
                    {
                        //JiraGetIssueResponse jiraIssue = (JiraGetIssueResponse)parserJira.readValueAs(JiraGetIssueResponse.class);
                     	//system.debug(jiraIssue);
                     	system.debug('Current TOKEN:'+parserJira.getCurrentToken());
                		system.debug('Current TEXT:'+parserJira.getText());
                        //parserJira.nextToken();
                        //system.debug('**************');
                    }   
                }
                system.debug('**************');
                //system.debug('Current TOKEN:'+parserJira.getCurrentToken());
                //system.debug('Current TEXT:'+parserJira.getText());
                
            }
        }
        //system.debug('JiraId='+jiraId+' JiraKey='+jirakey);
    }
}

HTTP  response:
09:24:00:084 USER_DEBUG [43]|DEBUG|JSON Response: {"expand":"schema,names","startAt":0,"maxResults":50,"total":4,"issues":[{"expand":"operations,editmeta,changelog,transitions,renderedFields","id":"176072","self":"https://beta.pelco.com:8443/tasks/rest/api/latest/issue/176072","key":"TEST-3","fields":{"summary":"REST ye merry gentlemen2","created":"2016-03-03T11:38:40.000-0800","assignee":null,"priority":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/priority/6","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/help_16.gif","name":"None","id":"6"},"updated":"2016-03-03T11:38:40.000-0800","status":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/status/1","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/statuses/open.png","name":"Open","id":"1","statusCategory":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/statuscategory/2","id":2,"key":"new","colorName":"blue-gray","name":"New"}}}},{"expand":"operations,editmeta,changelog,transitions,renderedFields","id":"176071","self":"https://beta.pelco.com:8443/tasks/rest/api/latest/issue/176071","key":"TEST-2","fields":{"summary":"REST ye merry gentlemen.","created":"2016-03-02T16:15:49.000-0800","assignee":null,"priority":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/priority/6","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/help_16.gif","name":"None","id":"6"},"updated":"2016-03-02T16:15:49.000-0800","status":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/status/1","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/statuses/open.png","name":"Open","id":"1","statusCategory":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/statuscategory/2","id":2,"key":"new","colorName":"blue-gray","name":"New"}}}},{"expand":"operations,editmeta,changelog,transitions,renderedFields","id":"176073","self":"https://beta.pelco.com:8443/tasks/rest/api/latest/issue/176073","key":"SUSTAIN-4052","fields":{"summary":"REST ye merry gentlemen2","created":"2016-03-03T13:01:31.000-0800","assignee":null,"priority":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/priority/6","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/help_16.gif","name":"None","id":"6"},"updated":"2016-03-03T13:01:31.000-0800","status":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/status/1","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/statuses/open.png","name":"Open","id":"1","statusCategory":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/statuscategory/2","id":2,"key":"new","colorName":"blue-gray","name":"New"}}}},{"expand":"operations,editmeta,changelog,transitions,renderedFields","id":"176074","self":"https://beta.pelco.com:8443/tasks/rest/api/latest/issue/176074","key":"SUSTAIN-4053","fields":{"summary":"REST ye merry gentlemen3","created":"2016-03-04T09:52:23.000-0800","assignee":null,"priority":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/priority/6","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/help_16.gif","name":"None","id":"6"},"updated":"2016-03-04T09:52:23.000-0800","status":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/status/1","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/statuses/open.png","name":"Open","id":"1","statusCategory":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/statuscategory/2","id":2,"key":"new","colorName":"blue-gray","name":"New"}}}}]}

I converted Json to Apex and following classes were generated:
//
//Generated by AdminBooster
//

public class JiraGetIssueResponse
{
	public String expand;	//schema,names
	public Integer startAt;	//0
	public Integer maxResults;	//50
	public Integer total;	//4
	public cls_issues[] issues;
	public class cls_issues 
    {
		public String expand;	//operations,editmeta,changelog,transitions,renderedFields
		public String id;	//176072
		public String self;	//https://beta.pelco.com:8443/tasks/rest/api/latest/issue/176072
		public String key;	//TEST-3
		public cls_fields fields;
	}
	public class cls_fields 
    {
		public String summary;	//REST ye merry gentlemen2
		public String created;	//2016-03-03T11:38:40.000-0800
		public cls_assignee assignee;
		public cls_priority priority;
		public String updated;	//2016-03-03T11:38:40.000-0800
		public cls_status status;
	}
	public class cls_assignee 
    {
	}
	Public class cls_priority 
    {
		public String self;	//https://beta.pelco.com:8443/tasks/rest/api/2/priority/6
		public String iconUrl;	//https://beta.pelco.com:8443/tasks/images/icons/help_16.gif
		public String name;	//None
		public String id;	//6
	}
	public class cls_status 
    {
		public String self;	//https://beta.pelco.com:8443/tasks/rest/api/2/status/1
		public String description;	//The issue is open and ready for the assignee to start work on it.
		public String iconUrl;	//https://beta.pelco.com:8443/tasks/images/icons/statuses/open.png
		public String name;	//Open
		public String id;	//1
		public cls_statusCategory statusCategory;
	}
	Public class cls_statusCategory 
    {
		public String self;	//https://beta.pelco.com:8443/tasks/rest/api/2/statuscategory/2
		public Integer id;	//2
		public String key;	//new
		public String colorName;	//blue-gray
		public String name;	//New
	}
	public static JiraGetIssueResponse parse(String json)
    {
		return (JiraGetIssueResponse) System.JSON.deserialize(json, JiraGetIssueResponse.class);
	}
/*
	static testMethod void testParse() {
		String json=		'{"expand":"schema,names","startAt":0,"maxResults":50,"total":4,"issues":[{"expand":"operations,editmeta,changelog,transitions,renderedFields","id":"176072","self":"https://beta.pelco.com:8443/tasks/rest/api/latest/issue/176072","key":"TEST-3","fields":{"summary":"REST ye merry gentlemen2","created":"2016-03-03T11:38:40.000-0800","assignee":null,"priority":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/priority/6","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/help_16.gif","name":"None","id":"6"},"updated":"2016-03-03T11:38:40.000-0800","status":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/status/1","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/statuses/open.png","name":"Open","id":"1","statusCategory":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/statuscategory/2","id":2,"key":"new","colorName":"blue-gray","name":"New"}}}},{"expand":"operations,editmeta,changelog,transitions,renderedFields","id":"176071","self":"https://beta.pelco.com:8443/tasks/rest/api/latest/issue/176071","key":"TEST-2","fields":{"summary":"REST ye merry gentlemen.","created":"2016-03-02T16:15:49.000-0800","assignee":null,"priority":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/priority/6","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/help_16.gif","name":"None","id":"6"},"updated":"2016-03-02T16:15:49.000-0800","status":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/status/1","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/statuses/open.png","name":"Open","id":"1","statusCategory":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/statuscategory/2","id":2,"key":"new","colorName":"blue-gray","name":"New"}}}},{"expand":"operations,editmeta,changelog,transitions,renderedFields","id":"176073","self":"https://beta.pelco.com:8443/tasks/rest/api/latest/issue/176073","key":"SUSTAIN-4052","fields":{"summary":"REST ye merry gentlemen2","created":"2016-03-03T13:01:31.000-0800","assignee":null,"priority":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/priority/6","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/help_16.gif","name":"None","id":"6"},"updated":"2016-03-03T13:01:31.000-0800","status":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/status/1","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/statuses/open.png","name":"Open","id":"1","statusCategory":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/statuscategory/2","id":2,"key":"new","colorName":"blue-gray","name":"New"}}}},{"expand":"operations,editmeta,changelog,transitions,renderedFields","id":"176074","self":"https://beta.pelco.com:8443/tasks/rest/api/latest/issue/176074","key":"SUSTAIN-4053","fields":{"summary":"REST ye merry gentlemen3","created":"2016-03-04T09:52:23.000-0800","assignee":null,"priority":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/priority/6","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/help_16.gif","name":"None","id":"6"},"updated":"2016-03-04T09:52:23.000-0800","status":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/status/1","description":"The issue is open and ready for the assignee to start work on it.","iconUrl":"https://beta.pelco.com:8443/tasks/images/icons/statuses/open.png","name":"Open","id":"1","statusCategory":{"self":"https://beta.pelco.com:8443/tasks/rest/api/2/statuscategory/2","id":2,"key":"new","colorName":"blue-gray","name":"New"}}}}]}';
		JiraGetIssueResponse obj = parse(json);
		System.assert(obj != null);
	}
*/
}

I am not sure what I am doing wrong, in the parsing and deserialization.

Regards, 
Gaurav
ShantinathShantinath
Can you post any specific issues you got? When I executed above code in my Org, it worked just fine!