java - 如何将空列表转换为空列表?
问题描述
在我的 crud 应用程序中,post api 收到以下正文
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BodyRequest {
private String description;
private List<Request> ListRequest;
}
当 listRequest 未在请求正文中传递时,它变为 null 有没有办法在 listRequest 列表为空时为它设置一个空值?我想知道是否有可能在列表中添加一个注释,允许@value 或@json 等修改
我尝试将 @JsonDeserialize (using = OptimizedListDeserializer.class) 添加到列表中并定义 OptimizedListDeserializer 类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BodyRequest {
private String description;
@JsonDeserialize (using = OptimizedListDeserializer.class)
private List<Request> ListRequest;
}
public class OptimizedListDeserializer extends StdDeserializer<List<Request> > {
protected OptimizedListDeserializer(StdDeserializer<?> src) {
super(src);
// TODO Auto-generated constructor stub
}
@Override
public List<Request> deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException {
return new ArrayList<>();
}
}
但是当我尝试调用服务时,我得到了
"code": 415,
"error": "Content type 'application/json;charset=UTF-8' not supported"
解决方案
最简单的方法是像这样初始化类中的列表
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BodyRequest {
private String description;
private List<Request> ListRequest = new ArrayList();
}
推荐阅读
- amazon-web-services - 如何纠正詹金斯管道中的未知阶段部分错误?
- angular - angular2中的剑道网格-如何停止绑定网格
- jpa - 引起:java.lang.StackOverflowError: null Mapstruct
- nginx - 我的子域无法使用我的 VPS 和 NGINX 来托管应用程序
- css - 使用 Bootstrap 自定义断点
- ios - UIPageViewController 内的水平 UIScrollView
- javascript - Reactjs - 如何在编辑表单期间防止分配 null
- java - 使用 Saxon 对 Mei 文件 (xml) 运行 XSL 转换
- windows - cmd和资源管理器启动可执行文件之间的区别
- reactjs - 如何在 CKeditor5-ReactJS 或 .Net 中添加 MathType 和 ChemType 插件?