java - 如何将整数列表作为 json 数据传递给 Spring Boot Rest API?
问题描述
如何传递 customerids 和帐户详细信息数组并在控制器中接收?
下面是控制器的colde。
控制器
@PostMapping("/createaccount")
public String createAccount(@RequestBody Customerids customerids,@RequestBody Account account)
{
return accountservices.createAccountService(customerids, account);
}
只是想知道下面给出的json格式是否正确?
JSON通过:
{
"customerids" : {
"customreids" : [15,16,17]
},
"account":{
"type": "savings",
"individual":"no",
"balance": 3000.0
}
}
帐户 :
package com.tracker.pojos;
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Entity
@Table(name="Account")
public class Account {
@Id
private String account_number;
@Column
private String type;
@Column
private String individual;
@Column
private double balance;
@OneToMany
private List<Customer> customers;
}
**客户编号:**
package com.tracker.pojos;
import java.util.List;
import lombok.*;
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class Customerids {
List<Integer> customerids;
}
抛出的错误:
2020-12-18 13:43:02.491 WARN 10776 --- [nio-8080-exec-2] .wsmsDefaultHandlerExceptionResolver:已解决 [org.springframework.http.converter.HttpMessageNotReadableException:JSON 解析错误:无法反序列化java.util.ArrayList<java.lang.Integer>
没有 START_OBJECT 令牌;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法java.util.ArrayList<java.lang.Integer>
在 [Source: (PushbackInputStream); 处反序列化超出 START_OBJECT 令牌的实例;行:2,列:21](通过引用链:com.tracker.pojos.Customerids["customerids"])]
解决方案
您的 pojo 中的 customerIds 需要一个对象,并且该对象绑定到一个数组。然而,您的 Accounts 类绑定到一个 List ,它是一个数组。
改变这个:
"customerids" : {
"customreids" : [15,16,17]
},
仅此:
"customerids" : [15,16,17],
并改变这个:
@OneToMany
private List<Customer> customers;
对此:
@OneToMany
private List<Customer> customerIds;
推荐阅读
- python - 二和 LeetCode - 为什么我自己的代码失败了
- mysql - 在一个文件中编写多个 MySQL(在 vsCode 中)查询。如何避免不断写“USE DBaseName”?
- charts - 如何在颤振、x 轴和 y 轴上为图表添加名称?
- android - 两个克隆的模拟器同一个token,怎么改?
- python - 将记事本可读的未知文件类型转换为 .csv 文件
- ios - 在 UILabel 上使用 NSMutableAttributedString 时表情符号丢失
- stata - 按变量散点图颜色
- scala - 单元测试期间 Scala Deadline 的模拟时间
- ansible - 在 ansible 寄存器变量中搜索字符串列表
- java - 如何将当前时间戳添加到 Java 中的 Date 对象?