You will receive this error when your parsing/deserialize the JSON responses either user the JSON classes or JSON Parser classes.Please read the below points
WorkAround:
- When you deserialize the response into specified class type and if that class is having any field with data type "Object" you will receive this error.
- When you any JSONToApex Converter or JSONToC# we will end up with this issue.
- Please replace all the fields with Object data type into String/Integer etc..
Sample JSON:
{
"item": [
{
"CONTRACT": 1001117406,
"SOLD_TO": 10081120,
"PURCH_NO_C":,
"STREET": "1290 Hamner Ave",
"STR_SUPPL1": "",
"STR_SUPPL2":,
}
]
}
After Coverting JSONToApex:
public class Item { public integer CONTRACT { get; set; } public integer SOLD_TO { get; set; } public object PURCH_NO_C { get; set; } public string STREET { get; set; } public string STR_SUPPL1 { get; set; } public object STR_SUPPL2 { get; set; } } public class RootObject { public List<Item> item { get; set; } }
Deserialize the JSON:
JSONParser parser = JSON.createParser('sampleJsonResponse'); RootObject pr= (RootObject)parser.readValueAs(RootObject.class);
//Here you will receive an error because the RootObject.class is having fields (PURCH_NO_C,STR_SUPPL2) of type Object .
WorkAround:
Please change the wrapper class fields data type from Object to appropriate types as integer,double,string etc
public class Item { public integer CONTRACT { get; set; } public integer SOLD_TO { get; set; } public string PURCH_NO_C { get; set; } public string STREET { get; set; } public string STR_SUPPL1 { get; set; } public string STR_SUPPL2 { get; set; } } public class RootObject { public List<Item> item { get; set; } }
Hope this helps you..Enjoy..!
I love you
ReplyDelete