0

I have a json response from third party system which is as below.

    {
          "returnCode": 600,
          "lineItems": [
            {
              "id": 9762,
              "sfOrderId": "48393000000jK4MAAU",
              "sfLineItemId": "99303000000w9bnAAA",
              "accountType": "Indirect",
              "bounsLeads": 0,
              "cpl": 51000,
              "createdDate": "2020-07-30T14:45:16.803",
              "createdCustomerUserId": null,
              "createdPartnerUserId": 216,
              "createdInternalCustomerUserId": null,
              "createdId": null,
              "endDate": "2020-07-25T04:00:00",
              "isPrepaid": 0,
              "noIntegration": null,
              "leadVolume": 1,
              "modifiedDate": null,
              "modifiedId": null,
              "modifiedCustomerUserId": null,
              "modifiedPartnerUserId": null,
              "name": "Test file 7720202020",
              "segment": 0,
              "orderFileName": "tikto%20Test.docx",
              "orderFileLocation": "https://test.docx",
              "domainCount": null,
              "orderNumber": "",
              "poNumber": null,
              "signedDate": "2020-07-23T04:00:00",
              "startDate": "2020-07-23T04:00:00",
              "orderStatus": {
                "id": 1,
                "description": null,
                "name": "New",
                "priority": 1
              },
              "customQuestionType": null,
              "customQuestionNumber": null,
              "offerType": {
                "id": 2,
                "description": null,
                "name": "Data",
                "unitFactor": 1,
                "priority": 2
              },
              "pacingType": {
                "id": 2,
                "description": "NULL",
                "name": "Even",
                "priority": 2
              },
              "pacingInstructions": null,
              "programName": null,
              "callVerifier": null,
              "auditor": null,
              "convertorId": null,
              "formId": null,
              "linkId": null,
              "customerEmailId": null,
              "channel": null,
              "geo": "International",
              "priority": false,
              "leadCount": null,
              "contactType": null,
              "contactQuality": null,
              "suppressionListId": null,
              "namedAccountListId": null,
              "topicText": null,
              "topicsRemoved": null,
              "billingNotes": null,
              "deliveredPercentage": 0,
              "masterSuppression": null,
              "accountOwnerId": null,
              "contactOwnerId": null,
              "additionalUnits": 0,
              "contactSuppressionListId": null,
              "contactListId": null,
              "noContacts": false,
              "ioId": null,
              "advertiserId": null,
              "isSdqc": false,
              "department": null,
              "competitorTopics": false,
              "billingEmails": null
            },
            {
              "id": 9763,
              "sfOrderId": "48394000000jK4MAAU",
              "sfLineItemId": "88330000000w9boAAA",
              "accountType": "Indirect",
              "bounsLeads": 0,
              "cpl": 28000,
              "createdDate": "2020-07-30T14:45:16.805",
              "createdCustomerUserId": null,
              "createdPartnerUserId": 216,
              "createdInternalCustomerUserId": null,
              "createdId": null,
              "endDate": "2020-07-25T04:00:00",
              "isPrepaid": 0,
              "noIntegration": null,
              "leadVolume": 1,
              "modifiedDate": null,
              "modifiedId": null,
              "modifiedCustomerUserId": null,
              "modifiedPartnerUserId": null,
              "name": "Test Account 12 Test Agency 12 CPL 7720202020",
              "segment": 0,
              "orderFileName": "Testdoc.docx",
              "orderFileLocation": "https://test.docx",
              "domainCount": null,
              "orderNumber": "",
              "poNumber": null,
              "signedDate": "2020-07-23T04:00:00",
              "startDate": "2020-07-23T04:00:00",
              "orderStatus": {
                "id": 1,
                "description": null,
                "name": "New",
                "priority": 1
              },
              "customQuestionType": null,
              "customQuestionNumber": null,
              "offerType": {
                "id": 2,
                "description": null,
                "name": "Data",
                "unitFactor": 1,
                "priority": 2
              },
              "pacingType": {
                "id": 2,
                "description": "NULL",
                "name": "Even",
                "priority": 2
              },
              "pacingInstructions": null,
              "programName": null,
              "callVerifier": null,
              "auditor": null,
              "convertorId": null,
              "formId": null,
              "linkId": null,
              "customerEmailId": null,
              "channel": null,
              "geo": "International",
              "priority": false,
              "leadCount": null,
              "contactType": null,
              "contactQuality": null,
              "suppressionListId": null,
              "namedAccountListId": null,
              "topicText": null,
              "topicsRemoved": null,
              "billingNotes": null,
              "deliveredPercentage": 0,
              "masterSuppression": null,
              "accountOwnerId": null,
              "contactOwnerId": null,
              "additionalUnits": 0,
              "contactSuppressionListId": null,
              "contactListId": null,
              "noContacts": false,
              "ioId": null,
              "advertiserId": null,
              "isSdqc": false,
              "department": null,
              "competitorTopics": false,
              "billingEmails": null
            }
          ],
          "info": "Entity created."
    }
}

I am fetching the the multi line item array under the key "lineItems' by using the Json.deserializeUntyped as below

Map<String,Object> alistJson = (Map<String,Object>)((Map<String,Object>)((Map<String,Object>) JSON.deserializeUntyped(response.getbody())));
List<Object> myMaps = (List<Object>) alistJson.get('lineItems');

As there are multiple line items under that array as you can see in the above Json response, I am want to traverse each line item and pick only the sfLineItemId and Id key values and insert them into a list so that I can update them in the relevant lineItem records in Salesforce. Can anyone please let me know how this can be achieved?

0

The most simple way to do this is to use http://json2apex.herokuapp.com/. It generates you the JSON-structure that you have to Apex class(es). You can simply put your JSON String into the 'parse' function.

0

You can try this in below way. Any key value you want to pull out, use Map<String, Object> and object part you need to have typecast depending on the key part.

Map<String,Object> alistJson = (Map<String,Object>)JSON.deserializeUntyped( response.getbody() );
List<Object> myMaps = (List<object>) alistJson.get('lineItems');

for(Object myMap : myMaps){
    Map<String, Object> tempMap = (Map<String, Object>) myMap;
    System.debug('Printing JSON ::');
    for(String key: tempMap.keySet() ){
        System.debug( key + ' :: ' + tempMap.get(key));
    }
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.