Kum*_*eya 2 java deserialization spring-webclient
我在反序列化响应期间遇到问题。假设我使用 webclient 来自第三方的响应。
Response :
{
"name":"FirstName",
"type":"Steel",
"Fee":{
"id":"1234",
"name":"FeeFirstName"
},
"address":"2nd Street"
}
Run Code Online (Sandbox Code Playgroud)
这就是我的 pojo 类的样子
public class Fee{} //generic OR empty class
public class Foo{
private String name;
private String type;
private Fee fee;
private String address;
}
Run Code Online (Sandbox Code Playgroud)
我的网络客户端获取响应代码:
@Autowired
private WebClient fooWebClient;
public Foo getFoo()
{
try{
return fooWebClient.get()
.uri(uriBuilder -> uriBuilder.path("/foo/fee").build("123"))
.header(HttpHeaders.CONTENT_TYPE,MediaType.APPLICATION_JSON_VALUE)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(Foo.class)
.block();
}catch(Exception e){throw new ApiClientException(e.getMessage());}
}
Run Code Online (Sandbox Code Playgroud)
上面的 webclient getFoo() 代码没有给我完整的响应,费用是空白的,说明“类没有字段”。其余的值都会正确响应。费用需要为空,因为任何其他对象也可以出现。
请让我知道如何反序列化整个响应。
您不需要该类Fee,您可以完全摆脱它并使用 Map 代替:
public class Foo {
private String name;
private String type;
private Map<String, Object> fee;
private String address;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |