JsonParseException is subclass of JsonProcessingException. This exception occurred because parsing issues or non-well-formed content because of not fulling JSON syntax specification.
JsonParserException Example
Here JSonParserException occurred because not fulfilling the syntax specification because two curly brackets ({) used continuously
public class StudentDetail { private int rollNumber; private String firstName; private String lastName; //getter and setter of class }
public static void main(String[] args) { String json="{{\"rollNumber\":21 , \"firstName\":\"Saurabh\" , \"lastName\":\"Gupta\"}} "; System.out.println(json); try { ObjectMapper mapper = new ObjectMapper(); StudentDetail student= mapper.readValue(json, StudentDetail.class); System.out.println(student); } catch(IOException ex) { ex.printStackTrace(); } catch(Exception ex) { ex.printStackTrace(); }
JsonParserException Stacktrace
{{"rollNumber":21 , "firstName":"Saurabh" , "lastName":"Gupta"}}
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('{' (code 123)): was expecting double-quote to start field name
at [Source: (String)" {{"rollNumber":21 , "firstName":"Saurabh" , "lastName":"Gupta"}} "; line: 1, column: 4]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1804)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:693)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:591)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddName(ReaderBasedJsonParser.java:1767)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:692)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:155)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4013)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3004)
at com.fiot.json.jackson.exceptions.TestJacksonExample2.main(TestJacksonExample2.java:23)
Solutions
To fix this issue remove one level of the curly bracket from start and end so that fulfill JSON specification. The correct JSON for this example would be :
String json="{\"rollNumber\":21 , \"firstName\":\"Saurabh\" , \"lastName\":\"Gupta\"}";
As per JSON specification after curly bracket ({) only allow double quote for showing properties name or square bracket ([) if need to show set of objects or values.
You would like to see
Follow below link to see more JSON issues solutions:
You must log in to post a comment.