You need to sign in to do that
Don't have an account?
Frank van Meegen 13
How to generate JSON for a APEX REST Post callout
Thanks to the Trailhead module regarding APEX Rest callout I know how to post "mighty moose" to an endpoint ;-)
I am wondering how I can create and send a JSON string based on Salesforce fields. For example I want to send a case to an external system via a REST Post method with the following field mapping:
Ticket Number = CaseNumber
Ticket Status = Status
Ticket Priority = Priority
How would I change the request.setBody('{"name":"mighty moose"}'); line to succesfully generate the required JSON code for the external system?
I am wondering how I can create and send a JSON string based on Salesforce fields. For example I want to send a case to an external system via a REST Post method with the following field mapping:
Ticket Number = CaseNumber
Ticket Status = Status
Ticket Priority = Priority
How would I change the request.setBody('{"name":"mighty moose"}'); line to succesfully generate the required JSON code for the external system?
All Answers
Use this code to generate the JSON object
I would like to achieve to send data from a Salesforce record to An external system when certain criteria are met, but cannot find an example anywhere. Can you help me with an example?
Opportunity Opp = Trigger.new[0] ;
JSONGenerator gen = JSON.createGenerator(true);
gen.writeStartObject();
gen.writeStringField('Agency Code', Opp.Agency_Code__c);
gen.writeStringField('Account',Opp.Account);
gen.writeStringField('Implementation Contact',Opp.Implementation_Contact__c);
gen.writeStringField('Implementation Contact Email',Opp.Implementation_Contact__c.Email);
gen.writeStringField('Implementation Contact ID',Opp.Implementation_Contact__c.Record_ID_full__c);
gen.writeStringField('Opportunity Owner',Opp.Owner);
gen.writeStringField('Opportunity Owner Email',Opp.Owner.Email;
gen.writeStringField('Last Modified By Name',Opp.LastModifiedBy);
gen.writeStringField('Opportunity ID',Opp.Record_ID_Full__c);
gen.writeStringField('Account',Opp.Account);
gen.writeStringField('Account',Opp.Account);
gen.writeEndObject();
String jsonS = gen.getAsString();
System.debug('jsonMaterials'+jsonS);
String endpoint = 'http://www.example.com/service';
HttpRequest req = new HttpRequest();
req.setEndpoint(endpoint);
req.setMethod('POST');
req.setbody(jsonS);
Http http = new Http();
HTTPResponse response = http.send(req);
All the custom fields on opprtunity are working just fine but the lookup fields and standard field shows syntax error.
Can anyone suggets?
I have seen your discussion and you guys resolved the problem. It's really great and I am feeling good to see you that How helpful you all guys.
I also have a good tutorial about SSIS JSON.
Check this one also maybe it helps somebody.
the values are nested in jason .Is there a way to do for nesting jason input.
I also want the JSON in nested format from a single object. See below,
Country__c: {
'USA': {
Category__c: [
{
name:'Billing', [
{
Subcategory__c: "Billing1", Requirements__c: "Instruction1"
}
]
}
]
},
'Canada': {
},
'Mexico': {
}
}
Here is my DataModel:
sObject Fields Type
Instructions__c : Country__c Picklist
Category__c Picklist
Subcategory__c Picklist
Requirements__c Long Text Area
Can anyone help me out to generate JSON in this format.
Here is my actual question:
https://trailblazer.salesforce.com/answers?id=9063A000000tJfeQAE#!/feedtype=SINGLE_QUESTION_DETAIL&dc=All&criteria=OPENQUESTIONS&id=9063A0000019ljVQAQ