登录 后使用快捷导航
没有帐号?立即注册

IT撸码课程网

用户名   找回密码
  立即注册
发新帖

对象转Json字符串时,忽略指定属性

[复制链接]
100 177 100
发表于2018-11-21 15:53:07 | 只看楼主 | 阅读模式
登录后查看本帖详细内容!您需要登录后才可以下载 登录 | 立即注册


1、FastJson转Json字符串时,忽略指定属性

1.1使用注解@JSONField

以下Bean

package com.gomefinance.esign;
 
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Getter;
import lombok.Setter;
 
import java.io.Serializable;
 
/**
 * 本地签署信息
 * Created by JHAO on 2017/5/31.
 */
@Setter
@Getter
public class FastJsonInputBean implements Serializable {
 
    // 合同模板ID
 
    private String contractTemplateId;
    // 合同号
    private String contractId;
    // Base64编码的合同
    @JSONField(serialize = false)
    private String contractImage;
    private String contractVersion;
 
}
 FastJsonInputBean inputBean = new FastJsonInputBean();
 inputBean.setContractImage("contractImage");
 inputBean.setContractTemplateId("templateId");
 inputBean.setContractId("comtractId");
 inputBean.setContractVersion("contractVersion");
 
 System.out.println("JSONField(serialize = false)忽略contractImage属性:"+JSON.toJSONString(inputBean));
 打印结果:{"contractId":"comtractId","contractTemplateId":"templateId","contractVersion":"contractVersion"}

1.2Filter指定序列化的字段

 SimplePropertyPreFilter filter = new SimplePropertyPreFilter(FastJsonInputBean.class, "contractTemplateId");
 System.out.println("filter忽略contractTemplateId属性:"+JSONObject.toJSONString(inputBean, filter));
 打印结果:{"contractTemplateId":"templateId"}


2、JackSon忽略字段

@JsonIgnoreProperties主键或者在字段上使用@JsonIgnore

package com.gomefinance.esign;
 
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
 
import java.io.Serializable;
 
/**
 * 本地签署信息
 * Created by JHAO on 2017/5/31.
 */
@Setter
@Getter
@JsonIgnoreProperties({"contractTemplateId", "contractImage"})
public class JackSonInputBean implements Serializable {
 
    // 合同模板ID
 
    private String contractTemplateId;
    // 合同号
    @JsonIgnore
    private String contractId;
    // Base64编码的合同
    private String contractImage;
    private String contractVersion;
 
}
 JackSonInputBean jackSonInputBean = new JackSonInputBean();
 jackSonInputBean.setContractImage("contractImage");
 jackSonInputBean.setContractTemplateId("templateId");
 jackSonInputBean.setContractId("comtractId");
 jackSonInputBean.setContractVersion("contractVersion");
 
 ObjectMapper objectMapper = new ObjectMapper();
 System.out.println("JackSon JsonIgnore忽略contractId属性:"+objectMapper.writeValueAsString(jackSonInputBean));
打印结果:{"contractVersion":"contractVersion"}


IT撸码网 - 必读申明1、本站会员可发帖,本主题所有言论和图片纯属会员个人意见,与本论坛立场无关.
2、本站所有帖子由该帖子作者发表,该帖子作者享有帖子相关权益.
3、本帖内容来网友及会员分享和其它网络媒体.
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意!
5、若因内容问题IT撸码网管理员和版主有权不事先通知发贴者而删除本文.
6、本站课程仅供本站会员学习参考,不得传播及用于其他用途,学习完后请在24小时内自行删除.
7、本站资源质量虽均经精心审查,但也难保万无一失,若发现资源有问题影响学习请一定及时点此进行问题反馈,我们会积极为您解决问题!
8、若发现链接失效了点此进行链接失效反馈,我们会第一时间修复链接.

精彩评论0

您需要登录后才可以发帖查看详细内容! 登录 | 立即注册
*
 

本版积分规则