You need to sign in to do that
Don't have an account?
How to get object from JSON parser ?????
Hi All,
I have a JSON response in this format ,
{"response":[{
"field1" : "Developer",
"field2":{"type":"Entery Level"},
"field3":{"dynamicdata":{"Objectfield":{"Objectfield":"abc"}}}
},
{
"field1" : "Developer",
"field2":{"certification":"501 certified"},
"field3":{"language":"Apex"}}
},
{
"field1" : "Developer",
"field2":{"hasBlog":"true"},
"field3":{"Grade":{"A":{"marks":10}}}
},
{
"field1" : "Developer",
"field2":{"isContributor":"true"},
"field3":{"Rank":{"A":{"marks":10}}}
}
]
}
Using JSONParser parser = JSON.createParser(response.getBody()); to parse it.
I am able to get the proper values for field1. However, for fields "field2" & "field3" getting values like "{" as it is refering object.But parser class doesnt contain any method to get the Object.
As this fields hold JSON with no specified format.And I want to map this fields value to class field as a String like ApexClass.field3 = '{"Grade":{"A":{"marks":10}}}'.
In this scenario, I cannt use deserializeuntype as it only deals with primitive data types and I have a Apex class to map this JSON response.
The code looks like
JSONParser parser = JSON.createParser(response.getBody());
while (parser.nextToken() != null) {
if (parser.getCurrentToken() == JSONToken.START_ARRAY) {
while (parser.nextToken() != null ) {
if(parser.getCurrentToken() == JSONToken.START_OBJECT) {
while (parser.nextToken() != null){
if(parser.getCurrentToken() == JSONToken.FIELD_NAME){
String fieldName = parser.getText();
parser.nextToken();
String fieldvalue = parser.getText();
System.debug('fieldName : '+fieldName + ' fieldValue :'+fieldvalue);
// After comparision assigning value to apex class fields and adding to a list.
}
}
}
}
}
}
}
If I am missing anything so please correct me .Also please suggest if there would be any better approach to handle this scenario.
Thanks
FP -
Have you find any solution for this. I am facing same problem. Please post your answe if you have found a solution.
Thanks and Regards,
Surendranadh Nune