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'));
}
@Saitejad7
Copy link

Thank you very much for the solution

@AmatusDV
Copy link

@Saitejad7 -- You're welcome!

@Saitejad7
Copy link

And do you know how to write aura:if for two different fields

For suppose i had gender in J2A_kipuGetOccupancyHigh class and gender in another class and i want to check if both the gender is same we have to show the dob value or else we have to show dob value as empty like i've tried below but it doesn't work so can you help me out

<aura:if isTrue="{!item.gender== '!val.gender'}">

${!val.dob}

@AmatusDV
Copy link

Unfortunately, I am not familiar with aura. However, in the case of apex, it depends on where the variables are in the hierarchy and where you are trying to make the comparison. Remember that code is read from left to right, top to bottom (this is an overgeneralization -- I understand there is nuance). As such, you want to make sure you are doing your comparison after both variables have been read/created.

Can you drop your code here for reference? I can see that you shared some earlier in the thread, but I'm not seeing where your comparison variables are.

@Saitejad7
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

@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