0
json을 소비하고 객체로 변환하는 코드를 작성 중이다. 예를 들어 내 json 응답은 다음과 같습니다. -객체의 Arrya에 JSON 응답을 비 직렬화 할 수 없다.
String carJson = "{\"brand \ ": Mercedes \", \ "doors \": 5} {\ "brand \": \ "Tata \", \ "doors \": 4}]} ";
실제로 자동차의 배열.
나는 자바 객체로 역 직렬화 코드 아래에 작성했습니다 : -
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
List<Car> jsonToCarList = objectMapper.readValue(carJson, new TypeReference<List<Car>>() {});
jsonToCarList.forEach(System.out::println);
이것은 내 자동차 등급 : -
public class Car {
@JsonProperty("car")
private List<CarType> car;
public Car(@JsonProperty("car") List<CarType> car) {
this.car = car;
}
@JsonProperty("car")
public List<CarType> getCar() {
return car;
} }
CarType은 다음과 같습니다 : -
class CarType {
@JsonProperty("brand")
private String brand;
@JsonProperty("doors")
private String doors;
public CarType(String brand, String doors) {
this.brand = brand;
this.doors = doors;
}
public CarType() {
}
@JsonProperty("brand")
public String getBrand() {
return brand;
}
@JsonProperty("doors")
public String getDoors() {
return doors;
}
}
여기에 무슨 문제가 있습니까? 나는 오류가 아래에 무엇입니까 : -
Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
at [Source: {"car" : [{ "brand" : "Mercedes", "doors" : 5 },{ "brand" : "Tata", "doors" : 4 }] }; line: 1, column: 1]
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:762)
at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:758)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.handleNonArray(CollectionDeserializer.java:275)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:216)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:206)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:25)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3066)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2168)
실제 문제는 무엇입니까? 오류가 있습니까? 필드가 null입니까? 실제로 문제가 무엇인지 알려주지 않았습니다. – rmlan
예 오류가 발생합니다. 나는 그 질문을 갱신했다. 미안, 나는 그 부분을 놓쳤다. –