Parsing Http Response (JSON Format) using Apex

Apex Feb 19, 2015

In Order to Parse JSON Response in Apex one must use JSONParse Class

  1. Initiate JSONParser as parser
  2. Pass res.getBody() or JSON body as parameter to Json.CreateParser()
  3. And parser.nextToken() is responsible for getting next Token/node of JSON body

here is example of Apex Class parsing JSON body

JSONParser parser = JSON.createParser(res.getBody());
while (parser.nextToken() != null) {
    if (parser.getCurrentToken() == JSONToken.FIELD_NAME) {
        String fieldName = parser.getText();
        parser.nextToken();
        if (fieldName == 'ContactId') {
            //accesstoken = parser.getText();
            system.debug('contactId Text() => ' + parser.getText());
        } else if (fieldName == 'CompanyName') {
            //expiresIn = parser.getIntegerValue();
            system.debug('COmpany Text() => ' + parser.getText());
        } else if (fieldName == 'Country') {
            //expiresIn = parser.getIntegerValue();
            system.debug('COmpany Text() => ' + parser.getText());
        } else if (fieldName == 'LastName') {
            //expiresIn = parser.getIntegerValue();
            system.debug('COmpany Text() => ' + parser.getText());
        } else if (fieldName == 'City') {
            //expiresIn = parser.getIntegerValue();
            system.debug('COmpany Text() => ' + parser.getText());
        } else if (fieldName == 'State') {
            //expiresIn = parser.getIntegerValue();
            system.debug('COmpany Text() => ' + parser.getText());
        } else if (fieldName == 'FirstName') {
            //expiresIn = parser.getIntegerValue();
            system.debug('COmpany Text() => ' + parser.getText());
        }
    }
}

In System.debug() parser.getText() is used for getting attributes values fo JSON nodes, depending on datatype use parser.getIntegerValue(), etc.,

For more information on Apex JSON click here

Phanindra Mangipudi

Salesforce, Lightning Web Componets, Node.Js, Angular 2+, Bootstrap