+ Start a Discussion
ForceRookieForceRookie 

Queueable Class and AWS: Display JSON format of File Mapping

I have a File__c Object and Folder__c Object, I have to display the File Mapping from AWS callout in FileMapping__c field using Queueable Class, in this format:
{
   "00BO000001F3w11ABC" : {    //This is the Record ID
                "files" : [    //Object
		   {
			"name" : "File.txt",
			"SFFolderObject" : "<FOLDER LOOKUP>",
			"foldername" : "<FOLDER NAME>",
			"bucketid" : "<BUCKET ID>",
			"SalesforceID" : "<ID OF FILE RECORD>"
                        "Created Date" : "<Date>"
			
		   }
		]
   }
}

Please help. Thanks in advance!
Raj VakatiRaj Vakati

sing the JSONGenerator class methods, you can generate standard JSON-encoded content.
You can construct JSON content, element by element, using the standard JSON encoding. To do so, use the methods in the JSONGenerator class.

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_json_jsongenerator.htm
public class JSONGeneratorSample{

    public class A { 
        String str;
        
        public A(String s) { str = s; }
    }

    static void generateJSONContent() {
        // Create a JSONGenerator object.
        // Pass true to the constructor for pretty print formatting.
        JSONGenerator gen = JSON.createGenerator(true);
        
        // Create a list of integers to write to the JSON string.
        List<integer> intlist = new List<integer>();
        intlist.add(1);
        intlist.add(2);
        intlist.add(3);
        
        // Create an object to write to the JSON string.
        A x = new A('X');
        
        // Write data to the JSON string.
        gen.writeStartObject();
        gen.writeNumberField('abc', 1.21);
        gen.writeStringField('def', 'xyz');
        gen.writeFieldName('ghi');
        gen.writeStartObject();
        
        gen.writeObjectField('aaa', intlist);
        
        gen.writeEndObject();
        
        gen.writeFieldName('Object A');
        
        gen.writeObject(x);
        
        gen.writeEndObject();
        
        // Get the JSON string.
        String pretty = gen.getAsString();
        
        System.assertEquals('{\n' +
        '  "abc" : 1.21,\n' +
        '  "def" : "xyz",\n' +
        '  "ghi" : {\n' +
        '    "aaa" : [ 1, 2, 3 ]\n' +
        '  },\n' +
        '  "Object A" : {\n' +
        '    "str" : "X"\n' +
        '  }\n' +
        '}', pretty);
    }
}