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?