Unexpected end-of-input: expected close marker for OBJECT

Lucía Román González picture Lucía Román González · Aug 27, 2014 · Viewed 26.6k times · Source

I'm trying to create a geopoint in my app engine application but when I try to deserialize it I got this annoying message:

Uncaught exception from servlet
org.codehaus.jackson.JsonParseException: Unexpected end-of-input: expected close marker for OBJECT (from [Source: java.io.StringReader@1a21658; line: 1, column: 0]).

This is my JSON code:

{
    "id": 31,
    "name": "pepe",
    "mail": "[email protected]",
    "password": 123,
    "age":10,
    "birthday": "01-06-1991",
    "desc" : " bla bla",
    "gp": {
     "latitude": 64.124596,
     "longitude": -147.8632
     }
}

and this is the declaration of geopoint and my custom deserialize method:

GeoPoint gp;

public GeoPoint getGp() {
    return gp;
}

@JsonDeserialize(using = CustomGeoPintDeserializer.class)
public void setGp(GeoPoint gp) {
    this.gp = gp;
}

public  class CustomGeoPintDeserializer extends JsonDeserializer<GeoPoint> {

    @Override
    public GeoPoint deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {

        System.out.println("ENTRA");
        ObjectMapper mapper = new ObjectMapper();
        JsonNode actualObj = mapper.readValue(jsonParser.getText(), JsonNode.class);

        double latitude = actualObj.get("latitude").getDoubleValue();

        double longitude = actualObj.get("longitude").getDoubleValue();


        return new GeoPoint(latitude,longitude);
    }
}

Answer

Irina picture Irina · Apr 28, 2017

For me it was much simple solution.

I forgot to close brackets in my SwaggerUI request like that:

{
    "jobGroup": "Authorizer-CCC",
    "jobName": "Authorizer-2NO5-101"