分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

fastJson注解@JSONField使用的一个实例

发布时间:2023-09-06 02:18责任编辑:胡小海关键词:暂无标签

1.实体类

package jsonArrayjsonObject.cn;import java.io.Serializable;import java.util.Date;import com.alibaba.fastjson.annotation.JSONField;import com.alibaba.fastjson.serializer.SerializerFeature;public class User implements Serializable{ ???private static final long serialVersionUID = 1L; ???// 配置序列化和反序列化的顺序,1.2.42以上版本支持。默认是以fieldName的字母序进行序列化的 ???@JSONField(ordinal = 0) ???private Long id; ???????@JSONField(ordinal = 1, name = "na") ???private String name; ???????// 序列化与反序列化,默认均为true ???@JSONField(ordinal = 2, serialize = false, deserialize = false) ???private Integer age; ???????// 默认序列化规则是当字段值为null时,是不序列化该字段的。当设置规则后,value为null时,依然会把它的值序列化出来 ???@JSONField(ordinal = 3, serialzeFeatures = SerializerFeature.WriteMapNullValue) ???private String address; ???????// 指定时间格式 ???@JSONField(ordinal = 4, format = "yyyy-MM-dd ?HH:mm:ss") ???private Date birthDate; ???public Long getId() { ???????return id; ???} ???public void setId(Long id) { ???????this.id = id; ???} ???public String getName() { ???????return name; ???} ???public void setName(String name) { ???????this.name = name; ???} ???public Integer getAge() { ???????return age; ???} ???public void setAge(Integer age) { ???????this.age = age; ???} ???public String getAddress() { ???????return address; ???} ???public void setAddress(String address) { ???????this.address = address; ???} ???public Date getBirthDate() { ???????return birthDate; ???} ???public void setBirthDate(Date birthDate) { ???????this.birthDate = birthDate; ???} ???}

2.测试类

package jsonArrayjsonObject.cn;import java.util.Date;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;public class Test { ???public static void main(String[] args) { ???????test1(); ???} ???????// 测试SimplePropertyPreFilter 和 JsonField 注解 ???static void test1(){ ???????User user = new User(); ???????user.setId(1L); ???????user.setAge(12); ???????user.setName("zhangsan"); ???????user.setBirthDate(new Date()); ???????????????SimplePropertyPreFilter filter = new SimplePropertyPreFilter(User.class, "na", "address"); ???????????????String jsonString1 = JSON.toJSONString(user); ???????String jsonString2 = JSON.toJSONString(user, filter); ???????System.out.println(jsonString1); ???????System.out.println(jsonString2); ???}}

3.结果

{"id":1,"na":"zhangsan","address":null,"birthDate":"2018-01-08 ?14:24:28"}{"na":"zhangsan","address":null}

 4.参考

关于@JsonField的name属性详解见:http://www.cnblogs.com/softidea/p/5681928.html

fastJson注解@JSONField使用的一个实例

原文地址:https://www.cnblogs.com/toSeeMyDream/p/9785869.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved