0
jsonを消費してオブジェクトに変換するコードを作成しています。 たとえば、私のjsonの応答は以下の通りです: -オブジェクトのArryaへのJSON応答を逆シリアル化できない
文字列carJson = "{\" car \ ":\" brand \ ":\" Mercedes \ "、\" doors \ ":5} {\ "ブランド\":\ "タタ\"、\ "ドア\":4}]} ";
実際に車の配列。
私は、Javaオブジェクトにそれをデシリアライズするためのコードの下に書かれている: -
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)
実際の問題は何ですか?エラーが発生していますか?フィールドはヌルですか?あなたは実際に問題が何であるか教えてくれませんでした。 – rmlan
はいエラーが表示されます。私は質問を更新しました。すみません、私はその部分を逃しました。 –