fastJson注解@JSONField使用的一个实例
发布时间:2020-12-16 18:43:26 所属栏目:百科 来源:网络整理
导读: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 Serializa
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |