У меня проблема с Спрингом и Джексоном. Я пытался получить входные данные от этого API . Я создал Java модель, используя http://www.jsonschema2pojo.org/
Модель
package io.github.mat3e.earthquake.jsonObject;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.List;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"type",
"metadata",
"features",
"bbox"
})
public class DataModel {
@JsonProperty("type")
private String type;
@JsonProperty("metadata")
private Metadata metadata;
@JsonProperty("features")
private List<Feature> features = null;
@JsonProperty("bbox")
private List<Double> bbox = null;
@JsonProperty("type")
public String getType() {
return type;
}
@JsonProperty("type")
public void setType(String type) {
this.type = type;
}
@JsonProperty("metadata")
public Metadata getMetadata() {
return metadata;
}
@JsonProperty("metadata")
public void setMetadata(Metadata metadata) {
this.metadata = metadata;
}
@JsonProperty("features")
public List<Feature> getFeatures() {
return features;
}
@JsonProperty("features")
public void setFeatures(List<Feature> features) {
this.features = features;
}
@JsonProperty("bbox")
public List<Double> getBbox() {
return bbox;
}
@JsonProperty("bbox")
public void setBbox(List<Double> bbox) {
this.bbox = bbox;
}
}
Конечно, все зависимости (подклассы добавляются в одной и той же структуре).
Код для извлечения данных из внешнего API:
@GetMapping("/3")
public String getCostam() {
RestTemplate rest = new RestTemplate();
ResponseEntity<DataModel[]> responseEntity = restTemplate.getForEntity(url2, DataModel[].class);
Object[] objects = responseEntity.getBody();
MediaType contentType = responseEntity.getHeaders().getContentType();
HttpStatus statusCode = responseEntity.getStatusCode();
return statusCode.toString();
}
Когда я запускаю код и пытаюсь получить адрес "api / 3", возникает следующая ошибка:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `[Lio.github.DataModel;` out of START_OBJECT token
at [Source: (PushbackInputStream); line: 1, column: 1]