Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No content to map due to end-of-input jackson parser

I am getting this response from the server {"status":"true","msg":"success"}

I am trying to parse this json string using Jackson parser library but somehow I am facing mapping-exception stating

com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input  at [Source: java.io.StringReader@421ea4c0; line: 1, column: 1] 

Why do we get this kind of exceptions?

How to understand what is causing this exception?

I am trying to parse using following way:

StatusResponses loginValidator = null;  ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(Feature.AUTO_CLOSE_SOURCE, true);  try {     String res = result.getResponseAsString();//{"status":"true","msg":"success"}     loginValidator = objectMapper.readValue(result.getResponseAsString(), StatusResponses.class); } catch (Exception e) {     e.printStackTrace(); } 

StatusResponse class

@JsonInclude(JsonInclude.Include.NON_NULL) @JsonPropertyOrder({ "status","msg" }) public class StatusResponses {      @JsonProperty("status")     public String getStatus() {         return status;     }      @JsonProperty("status")     public void setStatus(String status) {         this.status = status;     }      @JsonProperty("msg")     public String getMessage() {         return message;     }      @JsonProperty("msg")     public void setMessage(String message) {         this.message = message;     }      @JsonProperty("status")     private String status;      @JsonProperty("msg")     private String message;      private Map<String, Object> additionalProperties = new HashMap<String, Object>();      @JsonGetter     public Map<String, Object> getAdditionalProperties() {         return additionalProperties;     }      @JsonSetter     public void setAdditionalProperties(Map<String, Object> additionalProperties) {         this.additionalProperties = additionalProperties;     } } 
like image 455
Swapnil Kadam Avatar asked Nov 14 '14 07:11

Swapnil Kadam


1 Answers

import com.fasterxml.jackson.core.JsonParser.Feature; import com.fasterxml.jackson.databind.ObjectMapper;  StatusResponses loginValidator = null;  ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(Feature.AUTO_CLOSE_SOURCE, true);  try {     String res = result.getResponseAsString();//{"status":"true","msg":"success"}     loginValidator = objectMapper.readValue(res, StatusResponses.class);//replaced result.getResponseAsString() with res } catch (Exception e) {     e.printStackTrace(); } 

Don't know how it worked and why it worked? :( but it worked

like image 177
Swapnil Kadam Avatar answered Sep 17 '22 23:09

Swapnil Kadam