小编Kar*_*ala的帖子

Java:使用json -SpringBoot中的"​​@class"将json反序列化为rest模板中的object

我必须实例化一个类,它使用@class中的信息从JSON扩展抽象类,如下所示.

"name": {
  "health": "xxx",
  "animal": {
    "_class": "com.example.Dog",
    "height" : "20"
    "color" : "white"
  }
},
Run Code Online (Sandbox Code Playgroud)

这里抽象类是动物,狗延伸动物类.因此,使用@class中的信息,我们可以直接实例化狗.这也是我在restTemplate中得到的回应

ResponseEntity<List<SomeListName>> response = restTemplate.exchange("http://10.150.15.172:8080/agencies", HttpMethod.GET, request, responseType);
Run Code Online (Sandbox Code Playgroud)

执行此行时会出现以下错误.由于POJO类是自动生成的,我不能使用像@JsonTypeInfo这样的注释

我正在使用Spring boot和maven.此错误将在控制台中出现.

无法读取JSON:无法构造"MyPOJO"的实例,问题:抽象类型需要映射到具体类型,具有自定义反序列化器,或者使用其他类型信息进行实例化

java jackson deserialization resttemplate spring-boot

1
推荐指数
1
解决办法
9421
查看次数