function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Umamageshwari PalanisamyUmamageshwari Palanisamy 

How to get JSON field name ?

The JSON structure I am using is as follows :

User-added image




I am trying to get the 'fr' inside the 'label' which is inside the 'version presentation'. I have tried so many times and here is my coding :

    public class GetRestfulExampleSucces {

public string jsonStr {get;set;}
public Pagereference getJSONFromREST() {
        Http h = new Http();
        HttpRequest req = new HttpRequest();
        req.setEndpoint('http://dz.co.rplug.renault.com/pres/BAWg');
        req.setHeader('Accept','application/JSON');
        req.setMethod('GET');
        HttpResponse res = h.send(req);
        jsonStr= res.getBody();
        List<String> calOut = new List<String>();
        system.debug('jsonStr>>>>>>>>>>>>'+jsonStr);
        JSONParser parser = JSON.createParser(jsonStr);
        while (parser.nextToken() != null) {
            if (parser.getCurrentToken() == JSONToken.FIELD_NAME){
                String fieldName = parser.getText();
                system.debug('fieldName >>>>>>>>>>>>'+fieldName );
                if(fieldName == 'versionsPresentation'){
                    while(parser.nextToken() != null){                   
                        if(parser.getCurrentToken() == JSONToken.FIELD_NAME){
                            String Mname = parser.getText();
                            system.debug('Mname >>>>>>>'+Mname );
                                if(Mname == 'fr'){
                                parser.nextToken();
                                 string version=parser.getText();
                                system.debug('version>>>>>>>'+version);
                                }
                        }
                    }
                }
            }
        }
    return null;
        }

}

 By using the above coding , I am getting again all the field values . Please provide me a solution for my query.

Thanks in advance !!!


 
salesforce mesalesforce me
hi check this once...
 
public static Boolean InsertSOjects(String sObjectApiName, String jSONSObject)
{
    Map<String, Object> fieldMap = (Map<String, Object>)JSON.deserializeUntyped(jSONSObject);
    Schema.SObjectType targetType = Schema.getGlobalDescribe().get(sObjectApiName);
    SObject newSobject = targetType.newSObject();
    Map<String, Schema.sObjectField> targetFields = targetType.getDescribe().fields.getMap();
    for (String key : fieldMap.keySet())
    {
        Object value = fieldMap.get(key);
        Schema.DisplayType valueType = targetFields.get(key).getDescribe().getType();
        if (value instanceof String && valueType != Schema.DisplayType.String)
        {
            String svalue = (String)value;
            if (valueType == Schema.DisplayType.Date)
                newSobject.put(key, Date.valueOf(svalue));
            else if(valueType == Schema.DisplayType.DateTime)
                newSobject.put(key, DateTime.valueOfGmt(svalue));
            else if (valueType == Schema.DisplayType.Percent || valueType == Schema.DisplayType.Currency)
                newSobject.put(key, svalue == '' ? null : Decimal.valueOf(svalue));
            else if (valueType == Schema.DisplayType.Double)
                newSobject.put(key, svalue == '' ? null : Double.valueOf(svalue));
            else if (valueType == Schema.DisplayType.Integer)
                newSobject.put(key, Integer.valueOf(svalue));
            else if (valueType == Schema.DisplayType.Base64)
                newSobject.put(key, Blob.valueOf(svalue));
            else
                newSobject.put(key, svalue);
        }
        else
            newSobject.put(key, value);
    }
    insert newSobject;
}

 
Umamageshwari PalanisamyUmamageshwari Palanisamy
Map<String, Object> fieldMap = (Map<String, Object>)JSON.deserializeUntyped(jSONSObject);
for (String key : fieldMap.keySet())     {
  Object value = fieldMap.get(key);
}
Using this one am geting the json string again.