jackson 前后端交互 忽略字段
2023-12-30 12:50:04
前言
在java服务的前后端交互中,经常有类似这样的需求:
- 某些字段就是不应该被返回到前端(无论是否为空或null),但是对于后端来说至关重要
- 某些字段为空或者null ,不应该返回
- 某些字段即使是空的或者null, 也要返回
一、基于Jackson的交互处理
一般我们可以通过Jackson提供的几个注解来实现上述需求
二、使用步骤
1.字段为空或null 不返回
代码如下(示例):
@JsonInclude(Include.NON_EMPTY)
public class AppCollect{
//标识符
private String eid;
//创建时间
private Date createtime;
//用户id
private String userId;
//应用编号
private String appCode;
//排序
private Integer sort;
//创建人
private String createuid;
//企业ID
private String ecompanyid;
//删除标识
private Integer delflag;
}
@JsonInclude(Include.NON_EMPTY) 这样,字段值为空或者null,就不会返回该字段了
2.字段即使是空的或者null, 也要返回
代码如下(示例):
@JsonInclude(Include.NON_EMPTY)
public class AppCollect{
//标识符
private String eid;
//创建时间
@JsonInclude(Include.ALWAYS)
private Date createtime;
//用户id
private String userId;
//应用编号
private String appCode;
//排序
private Integer sort;
//创建人
private String createuid;
//企业ID
private String ecompanyid;
//删除标识
private Integer delflag;
}
@JsonInclude(Include.ALWAYS) 这样,字段值为空或者null,就不会返回该字段了,但是createtime 字段一定会有
3.某些字段就是不应该被返回到前端
代码如下(示例):
@JsonInclude(Include.NON_EMPTY)
public class AppCollect{
//标识符
private String eid;
//创建时间
@JsonInclude(Include.ALWAYS)
private Date createtime;
//用户id
@JsonIgnore
private String userId;
//应用编号
private String appCode;
//排序
private Integer sort;
//创建人
private String createuid;
//企业ID
private String ecompanyid;
//删除标识
private Integer delflag;
}
@JsonIgnore 这样,userId就一定不会被返回到前端了
总结
Jackson 还有很多其他注解,也都是非常实用的;
比如:
- @JsonProperty 转成json的时候,将字段名字变为另一个
- @JsonAlias 接收参数的时候,可以将属性增加一个名字接收参数(原名称也可以接收)
等等…
文章来源:https://blog.csdn.net/qq_32419139/article/details/134924905
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!