Skip to content

Instantly share code, notes, and snippets.

@tehnrd
Last active March 1, 2023 07:27
Show Gist options
  • Star 19 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tehnrd/4559623 to your computer and use it in GitHub Desktop.
Save tehnrd/4559623 to your computer and use it in GitHub Desktop.
Getting values out of a JSON list of objects with Apex code.
List<Object> fieldList = (List<Object>)JSON.deserializeUntyped('[{"field":"phone","object":"account"},{"field":"name","object":"account"}]');
for(Object fld : fieldList){
Map<String,Object> data = (Map<String,Object>)fld;
//Magic!
system.debug(data.get('field'));
}
@AmatusDV
Copy link

i've been sharing the code but i don't know why all the code is not posting in comment some of the code is not showing in comment

@Saitejad7 -- when you paste your code in the comment, make sure you are putting 3 backquotes before and after the code block so GH recognizes it as code.

@dayan-naskar
Copy link

"
component:
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes" access="global" controller = "BedsData">
<aura:handler name="init" value="{!this }" action="{!c.init}"/>
<aura:attribute name="bedsWrapper" type="object" />

<div class="slds-p-around--large">

<h1 style="font-size:15px;">
    message: {!v.bedsWrapper.message}<br/>
	responseCode: {!v.bedsWrapper.responseCode}<br/>
</h1>
    
<table class="slds-table slds-table--bordered slds-table--cell-buffer">
    <thead>
        <tr class="slds-text-title--caps">
            <th scope="col">
                <div class="slds-truncate" title="Room No.">Room No.</div>
            </th>
            <th scope="col">
                <div class="slds-truncate" title="Room Name">Room Name</div>
            </th>
            <th scope="col">
                <div class="slds-truncate" title="Gender">Gender</div>
            </th>
            <th scope="col">
                <div class="slds-truncate" title="Cost">Cost</div>
            </th>
        </tr>
    </thead>
    <tbody>
        <aura:iteration items="{!v.bedsWrapper.locations}" var="location">
            <aura:iteration items="{!location.buildings}" var="building">
                <aura:iteration items="{!building.beds}" var="bed">
                    <tr>
                        <th scope="row">
                            <div class="slds-truncate" title="{!bed.roomNo}">{!bed.roomNo}</div>
                        </th>
                        <th scope="row">
                            <div class="slds-truncate" title="{!bed.roomName}">{!bed.roomName}</div>
                        </th>
                        <th scope="row">
                            <div class="slds-truncate" title="{!bed.gender}">{!bed.gender}</div>
                        </th>
                        <th scope="row">
                            <div class="slds-truncate" title="{!bed.cost}">{!bed.cost}</div>
                        </th>
                    </tr>
                </aura:iteration>
            </aura:iteration>
        </aura:iteration>
    </tbody>
</table>
</div>

</aura:component>

controller:
({
init: function(component, event, helper) {
var action = component.get('c.bedsData');
//action.setParams({});
action.setCallback(this, function(response) {
var state = response.getState();
if (state === "SUCCESS") {
var val= response.getReturnValue();
console.log('val Response ' +JSON.stringify(val));
component.set('v.bedsWrapper', val);
} else if (status === "INCOMPLETE") {
console.log("No response from server or client is offline.")
} else if (status === "ERROR") {
console.log("Error: " + errorMessage);
}
});
$A.enqueueAction(action);
}
})

Apex Class:

BedsDataWrapper:
public class BedsDataWrapper{
@AuraEnabled
public String message; //Success
@AuraEnabled
public Integer responseCode; //4000
@AuraEnabled
public String response; //Success
@AuraEnabled
public List<cls_locations> locations;

public class cls_locations {
    @AuraEnabled
	public String locationType;	//HIghway Road
	@AuraEnabled
	public List<cls_buildings> buildings;
}

public class cls_buildings {
    @AuraEnabled
	public String buildingName;	//Ram
    @AuraEnabled
	public String buildingSite;	//Residencey
    @AuraEnabled
	public List<cls_beds> beds;
}

public class cls_beds {
    @AuraEnabled
	public Integer roomNo;	//51
    @AuraEnabled
	public Integer roomId;	//2324
    @AuraEnabled
	public String roomName;	//Taj Hotel
    @AuraEnabled
	public String gender;	//M
    @AuraEnabled
	public String checkinDate;	//11/09/2020
    @AuraEnabled
	public String checkOut;	//11/16/2020
    @AuraEnabled
	public String cost;	//1000.00
    @AuraEnabled
	public String appointmentDate;	//09/16/2021
    @AuraEnabled
	public boolean smoking;
    @AuraEnabled
	public boolean drinking;
    @AuraEnabled
	public String roomType;	//100_3
    @AuraEnabled
	public String suspendedFromDate;	//
    @AuraEnabled
	public String suspendedToDate;	//
    @AuraEnabled
	public String buildingName;	//Ram
    @AuraEnabled
	public String roomRent;	//168313.94685
    @AuraEnabled
	public cls_share share;
    @AuraEnabled
	public String padId;	//001
    @AuraEnabled
	public String endDate;	//99/99/1999
}

public class cls_share {
    @AuraEnabled
	public String roomName;	//Taj Hotel
    @AuraEnabled
	public Integer roomId;	//2324
    @AuraEnabled
	public String shortRoomName;	//TH
}

public static BedsDataWrapper parse(String json){
	return (BedsDataWrapper) System.JSON.deserialize(json, BedsDataWrapper.class);
}

}

BedsData:
public class BedsData {
@AuraEnabled
public static BedsDataWrapper bedsData(){
try{
String json = '{"message":"Success","responseCode":4000,"response":"Success","locations":[{"locationType":"HIghway Road","buildings":[{"buildingName":"Ram","buildingSite":"Residencey","beds":[{"roomNo":51,"roomId":2324,"roomName":"Taj Hotel","gender":"M","checkinDate":"11/09/2020","checkOut":"11/16/2020","cost":"1000.00","appointmentDate":"09/16/2021","smoking":false,"drinking":false,"roomType":"100_3","suspendedFromDate":"","suspendedToDate":"","buildingName":"Ram","roomRent":"168313.94685","share":{"roomName":"Taj Hotel","roomId":2324,"shortRoomName":"TH"},"padId":"001","endDate":"99/99/1999"}]}]}]}';
BedsDataWrapper results = BedsDataWrapper.parse(json);
return results;
} catch(Exception ex){
System.debug('Error occured while fetching the documents list' + ex);
}
return null;
}
}
"

@dayan-naskar
Copy link

check the above one...

@Saitejad7
Copy link

Saitejad7 commented Aug 23, 2021

<aura:if isTrue="{!not(empty(v.values))}">
<div class="slds-table_header-fixed_container slds-scrollable_x" style="height:100%">
<div class="slds-scrollable_y" style="width:1160px">	
<table role="grid" aria-rowcount="2" class="slds-table slds-table_header-fixed slds-table_bordered slds-table_edit" style="table-layout:fixed;width:1160px">
<thead>
<tr class="slds-line-height_reset">
<th scope="col" tabindex="-1" aria-label="" style="width:150px">                            
<div class="slds-cell-fixed" style="width: 150px;outline:none;">
<span class="slds-th__action">
<span class="slds-truncate">Gender</span>
</span>
</div>                            
</th>
<th scope="col" tabindex="0" aria-label="Name" style="width:100px">                                
<div class="slds-cell-fixed" style="width: 150px;outline:none;">
<span class="slds-th__action">
<span class="slds-truncate">Name</span>
</span>
</div>                               
</th>
<th scope="col" tabindex="0" aria-label="Last Name" style="width:100px">                                
<div class="slds-cell-fixed" style="width: 150px;outline:none;">
<span class="slds-th__action">
<span class="slds-truncate">Last Name</span>
</span>
</div>                               
</th>
<th scope="col" tabindex="0" aria-label="Name" style="width:100px">                                
<div class="slds-cell-fixed" style="width: 150px;outline:none;">
<span class="slds-th__action">
<span class="slds-truncate">First Name</span>
</span>
</div>                               
</th>
<th scope="col" tabindex="0" aria-label="Last Name" style="width:100px">                                
<div class="slds-cell-fixed" style="width: 150px;outline:none;">
<span class="slds-th__action">
<span class="slds-truncate">DOB</span>
</span>
</div>                               
</th>
<tbody>
<aura:iteration items="{!v.details}" var="item" indexVar="rowIndex">  
<tr data-data="{!rowIndex}">
<td role="gridcell" tabindex="-1" data-label="Record Type Name">                            
<span class="slds-grid slds-grid_align-spread">
<div class="slds-truncate">
<span class="slds-truncate">{!item.gender}</span>
</div>
</span>                            
</td>
<td role="gridcell" tabindex="-1" data-label="Record Type Name">                            
<span class="slds-grid slds-grid_align-spread">
<div class="slds-truncate">                                        
<span class="slds-truncate">{!item.name}</span>
</div>
</span>                            
</td>
<td role="gridcell" tabindex="-1" data-label="Record Type Name">                            
<span class="slds-grid slds-grid_align-spread">
<div class="slds-truncate">                                        
<span class="slds-truncate">{!item.lastName}</span>
</div>
</span>                            
</td>
<td role="gridcell" tabindex="-1" data-label="Record Type Name">                            
<span class="slds-grid slds-grid_align-spread">
<div class="slds-truncate">                                        
<span class="slds-truncate">{!item.firstName}</span>
</div>
</span>                            
</td>
<aura:iteration items="{!v.values.result}" var="result" indexVar="rowIndex"> 
<aura:iteration items="{!result.buildings}" var="buildings" indexVar="rowIndex">
<aura:iteration items="{!buildings.beds}" var="beds" indexVar="rowIndex">
<aura:if isTrue="{!item.gender == '!beds.gender'}">
<td role="gridcell" tabindex="-1" data-label="Record Type Name">                            
<span class="slds-grid slds-grid_align-spread">
<div class="slds-truncate">                                        
<span class="slds-truncate">{!beds.dob}</span>
</div>
</span>                            
</td>                                                
<aura:set attribute="else">
<td role="gridcell" tabindex="-1" data-label="Record Type Name">                            
<span class="slds-grid slds-grid_align-spread">
<div class="slds-truncate">                                        
<span class="slds-truncate">No Dob</span>
</div>
</span>                            
</td>
</aura:set>
</aura:if>
</aura:iteration>
</aura:iteration>
</aura:iteration>
</tr>
</aura:iteration>
</tbody>
</table>
</div>
</div>               
</aura:if> 

@Saitejad7
Copy link

@dayan-naskar Thank you

@jorgelopez200
Copy link

After many hours of trying to figure out how to accomplish this..... I found this solution! Thanks a lot

@maxbisesi
Copy link

Sick thank you

@kennethkim1221
Copy link

kennethkim1221 commented Mar 1, 2023

Worked like a charm! I've spent hours trying different solutions until I came upon this one which is so straightforward! Thank a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment