LET'S LEARN TOGETHER. THE BEAUTIFUL THING ABOUT LEARNING IS NOBODY CAN TAKE IT AWAY FROM YOU.

JSON Parsing with Apex in Salesforce - Part III

Hello friends,

In this post, I am going to share the information how to parse multiple JSON request and display the same in Visual Force page in tabular format.

If you haven't visited my previous posts regarding JSON parsing, please go to below links -
JSON Parsing with Apex in Salesforce - Part I
JSON Parsing with Apex in Salesforce - Part II

So let's start.
First the Visual Force Page-
<apex:page controller="CountryController">
    <apex:form >
        <apex:pageBlock Title="JSON Parser Example - Multiple Data">
            <apex:commandButton value="Parse Multiple JSON Data" action="{!parseJSONData}"
                reRender="countryData" />
        </apex:pageBlock>
        <br />
        <apex:pageBlock id="countryData">
            <apex:pageBlockTable value="{!countries}" var="country">
                <apex:column headerValue="Country Name" value="{!country.countryName}"/> 
                <apex:column headerValue="Country Capital" value="{!country.countryCapital}"/> 
                <apex:column headerValue="Country Currency" value="{!country.countryCurrency}"/> 
        </apex:pageBlockTable> 
        </apex:pageBlock>
    </apex:form>
</apex:page>
Now the controller-
public class CountryController {
    private List<CountryDataWrapper> countryDataWrapper;
    
    public void parseJSONData(){
        countryDataWrapper = new ParseMultipleJsonData().parse();
    }
    
    public List<CountryDataWrapper> getCountries(){
        return countryDataWrapper;
    }
}
The wrapper class to hold Country information-
public class CountryDataWrapper {
    public String countryName{get;set;}
    public String countryCapital{get;set;}
    public String countryCurrency{get;set;}
}
And finally the parser class doing the parsing
public class ParseMultipleJsonData {
    public List<CountryDataWrapper> parse() {
        String jsonMessage = '[{'+
        '  \"countryName\": \"India\",'+
        '  \"countryCapital\": \"Delhi\",'+
        '  \"countryCurrency\": \"Indian rupee\"'+
        '},'+
        '{'+
        '  \"countryName\": \"Switzerland\",'+
        '  \"countryCapital\": \"Bern\",'+
        '  \"countryCurrency\": \"Swiss franc\"'+
        '},'+
        '{'+
        '  \"countryName\": \"United States of America\",'+
        '  \"countryCapital\": \"Washington, D.C.\",'+
        '  \"countryCurrency\": \"US Dollar\"'+
        '}]';
        
        return (List<CountryDataWrapper>) System.JSON.deserialize(jsonMessage, List<CountryDataWrapper>.class);
    }
}

That's all. Let's see how the Visual force page is behaving now-
Initially the page looks like -
Now when we clicked on the "Parse Multiple JSON Data" button, it parsed the JSON data and displayed in tabular format like below-

If you have any feedback, please share with me. Thanks in advance.
Share:

No comments:

Post a Comment

Follow Me

Enter your email address:

Delivered by FeedBurner

Popular Posts

Labels

Salesforce (105) Apex (46) admin (27) visualforce (21) ADM (20) dev 501 (19) integration (18) learn salesforce (18) 501 (16) SOAP (13) lightning (13) tutorial (11) Certification. (10) javascript (10) Kitchener Developer Group (8) Certification (7) Trigger (7) test class (7) unit testing (7) Advanced Admin (6) Sharing and Visibility (6) design pattern (6) developer (6) report (6) salesforce release (6) security (6) service cloud (6) trailhead (6) Advanced Apex (5) New Features (5) SOQL (5) css (5) dashboard (5) debug (5) formula (5) mobile (5) solution management (5) use case (5) JSON (4) Kitchener User Group (4) Lightning Experience (4) Salesforce DX (4) Tips (4) WebSphere (4) best practice (4) cast iron (4) component (4) deployment (4) event (4) github (4) html (4) polymer (4) profiles (4) responsive (4) tdd (4) ui (4) Architect (3) Lightning Web Component (3) Live Chat (3) Online Event (3) Opportunity (3) Performance (3) Products (3) REST (3) Role (3) Sales Cloud (3) Scratch Org (3) Study Notes. (3) Summer15 (3) Web Technology (3) automation tool (3) dynamic apex (3) license (3) map (3) mapbox (3) singleton (3) version controlling (3) Asynchronous callout (2) Bulkify (2) Community (2) Data Architecture and Management Certification (2) Devops (2) Distributed Version Controlling (2) ES6 (2) Eclipse (2) Einstein (2) Enterprise Territory Management (2) Financial Services Cloud (2) Force.com IDE (2) Governor Limit (2) Groups (2) IBM (2) Implicit Sharing (2) JourneyToCTA (2) Lightning Design System (2) Live Agent (2) Metadata (2) PD II (2) Price Book (2) SOSL (2) Salesforce Certification (2) Sharing (2) Spring 15 (2) Summer17 (2) Territory (2) Virtual Event (2) ant (2) basic (2) chatter (2) coding (2) communication (2) console (2) controller (2) documentation (2) dreamforce (2) flow (2) git (2) jquery (2) logging (2) object (2) permission (2) process builder (2) release (2) salesforce1 (2) strategy (2) xml (2) Action Plan (1) Action Plan Template (1) Activity Timeline (1) Advanced Currency (1) Agent Productivity (1) Analytics (1) Apex Sharing (1) AppExchange (1) Arrow (1) Article (1) Asynchronous Apex (1) Aura Framework (1) Batch (1) Bots (1) Browser (1) Bulk data load (1) CTA (1) Calendar (1) Canon (1) Case Management (1) Celebration (1) Cheat Sheet (1) Classic (1) Compare (1) Confetti (1) Constructor (1) Contact Center (1) Continuation (1) Continuous Integration (1) Convert (1) Cookie (1) CumulusCI (1) Custom Metadata (1) Custom Object (1) Customer (1) Dated Exchange Rate (1) Decorator Design Pattern (1) Dev Hub (1) Development (1) Diwali (1) EDA (1) Education Cloud (1) Email (1) FSC (1) Function (1) Future (1) Global Gathering (1) Goals (1) Guest Access (1) Guest Profile (1) Guest User Sharing Rule (1) Guide (1) HEDA (1) Higher Education (1) Household (1) Ideas (1) Improvement (1) KPIs (1) Knowledge Management (1) Large Data Volume (1) LastModifiedDate (1) Lightning Feature (1) Manage Currencies (1) Manual Sharing (1) Metrics (1) Multi Currency (1) New (1) New Feature (1) OOPS (1) OWD (1) Omni-Channel (1) Partner (1) Person Account (1) Photo (1) Pipeline (1) Platform Developer I (1) Platform Developer II (1) Presentation (1) Product Schedule (1) Profile (1) Promise (1) Prototype (1) Public Site (1) Query Plan (1) Queueable (1) QuickReference (1) Related records (1) Reports (1) Retrieve (1) Role Hierarchy (1) SAL (1) SFDX (1) Salesforce Advisor Link (1) Salesforce Labs (1) Salesforce Optimizer (1) SalesforceDx (1) Schedule (1) Session (1) Sharing Rule (1) Sharing Sets (1) Site (1) Skills (1) Snap-ins (1) Spring 17 (1) Spring 20 (1) Summer14 (1) Summer16 (1) Summer19 (1) Switch (1) SystemModStamp (1) Timeline (1) Unauthorized Access (1) User License (1) Users (1) Webservice (1) Winter'15 (1) Winter'17 (1) access (1) actionFunction (1) actionPoller (1) actionRegion (1) actionSupport (1) agile (1) app (1) approval process (1) aura (1) awesome (1) backup (1) bitbucket (1) book (1) campaign (1) change set (1) code (1) code coverage (1) configuration (1) csv (1) custom button (1) custom settings (1) customization (1) data loader (1) database (1) delegate Admin (1) describe (1) dom (1) duplicate (1) dynamic (1) equals (1) error (1) field-level security (1) folder (1) ftp (1) generic (1) gift (1) global describe (1) hashcode (1) import wizard (1) jenkins (1) keynote (1) long running requests (1) monitoring (1) mysql (1) page layout (1) personal (1) power of one (1) record type (1) relationship (1) request (1) review (1) sub-tab (1) tab (1) username (1) visual workflow (1) workflow (1)

Total Subscribers

Total Pageviews

Contact Me

Name

Email *

Message *