Никакое содержание для отображения из-за конца входа jackson синтаксический анализатор

Я получаю этот ответ от сервера {"status":"true","msg":"success"}

Я пытаюсь проанализировать эту строку json, пользующуюся библиотекой синтаксического анализатора Jackson, но так или иначе я сталкиваюсь с утверждением исключения отображения

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

Почему мы получаем этот вид исключений?

Как понять то, что вызывает это исключение?

Я пытаюсь проанализировать использование после пути:

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

@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;
    }
}
60
задан 31 March 2019 в 12:44

3 ответа

В моем случае проблема была вызвана моей передачей пустого InputStream к вызову ObjectMapper.readValue:

ObjectMapper objectMapper = ...
InputStream is = null; // The code here was returning null.
Foo foo = objectMapper.readValue(is, Foo.class)

я предполагаю, что это - наиболее распространенная причина этого исключения.

1
ответ дан 1 November 2019 в 10:58

У меня была подобная ошибка сегодня, и проблемой был заголовок типа контента запроса сообщения. Удостоверьтесь, что тип контента - то, что Вы ожидаете. В моем случае "multipart/form-data" заголовок типа контента отправлялся в API вместо "application/json".

0
ответ дан 1 November 2019 в 10:58

В моем случае я читал поток в свитере RequestEventListener, который я создал на стороне сервера для входа тела запроса до обрабатываемого запроса. Я затем понял, что это, вероятно, привело к последующему чтению для получения никакой строки (который является тем, что передается, когда бизнес-логика выполняется). Я проверил это для имения место.

Поэтому, если Вы используете потоки для чтения строки JSON остерегаться этого.

0
ответ дан 1 November 2019 в 10:58

Другие вопросы по тегам:

Похожие вопросы: