【发布时间】:2021-04-23 19:45:47
【问题描述】:
我有一个嵌套的 Json 对象,我想将其反序列化为 Account 对象。
Json 示例:
{
"status": "OK",
"output": {
"accountNum": ".....",
"customerType": ".....",
"homeNumber": ".....",
"homeIndicator": ".....",
"eligible": true,
"startDate": "2017-01-01",
"contactDetails": {
"firstName": ".....",
"lastName": ".....",
"addressStreet": ".....",
},
"indicators": [
"ind1",
"ind2",
],
"employees": [
{
"name": ".....",
"email": ".....",
"model": ".....",
"program": [
{
"name": ".....",
"date": "....."
},
{
"name": ".....",
"date": "....."
}
],
"type": ".....",
"indicators": [
"....."
],
"customer": false
}
],
}
}
由于它是一个嵌套的 Json,我使用以下方法来做到这一点:
ObjectMapper mapper = new ObjectMapper();
Flux<Timed<XXXDto >> mergedMonos = Flux.fromIterable(jsonList).flatMapSequential(Function.identity());
mergedMonos.map(timed -> mapper.valueToTree(timed.get())).collectList().subscribe(System.out::print);
@Component
public class XXXDto {
@Autowired
private Account account;
@JsonProperty("output")
private void unpackOutput(Map<String, Object> output) {
//Account a1 = new Account();
// this.account.setAccountNum is null
output.get("accountNum");
问题是我想将“accountNum”存储在 Account 对象中,但在反序列化期间注入 Account 为空。
我可以在 unpackOutput 方法中创建一个实例,但我想看看是否有其他选项通过注入。
我们将不胜感激。
谢谢
【问题讨论】:
-
你能举一个你想要反序列化的json的例子吗?
-
抱歉,在问题中添加示例
标签: java spring-boot jackson