码迷,mamicode.com
首页 > Web开发 > 详细

FastJson序列化时忽略特定属性

时间:2014-08-23 16:41:31      阅读:1781      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   java   os   ar   art   

 

在之前的工作中,一直用jackson来处理json串转换的问题,有些时候我们经常有忽略某些属性的情况,个人比较习惯jackson的注解的方式,而且也是比较灵活的,分别提供了@JsonIgnoreProperties@JsonIgnore等。

而FastJson中,并没有提供类似的方式,而是提供了各种filter机制来实现的,具体可以参考:https://github.com/alibaba/fastjson/wiki/%E5%AE%9A%E5%88%B6%E5%BA%8F%E5%88%97%E5%8C%96

 

下面是个小例子:

主要是通过FastJson自带的SimplePropertyPreFilter这个类实现,其他我们自己可以实现上面文档里面的各种filter接口

Person.java:

bubuko.com,布布扣
 1 /**
 2  * 
 3  */
 4 package json;
 5 
 6 /**
 7  * 测试fastjson序列化时忽略制定属性
 8  * 
 9  * @author bells
10  * 
11  */
12 public class Person {
13 
14     private int age;
15 
16     private String name;
17 
18     private int height;
19 
20     private int weight;
21 
22     public Person() {
23 
24     }
25 
26     public Person(int age, String name, int height, int weight) {
27         this.age = age;
28         this.name = name;
29         this.height = height;
30         this.weight = weight;
31     }
32 
33     public int getAge() {
34         return age;
35     }
36 
37     public void setAge(int age) {
38         this.age = age;
39     }
40 
41     public String getName() {
42         return name;
43     }
44 
45     public void setName(String name) {
46         this.name = name;
47     }
48 
49     public int getHeight() {
50         return height;
51     }
52 
53     public void setHeight(int height) {
54         this.height = height;
55     }
56 
57     public int getWeight() {
58         return weight;
59     }
60 
61     public void setWeight(int weight) {
62         this.weight = weight;
63     }
64 
65 }
View Code

Main.java:

 1 /**
 2  * 
 3  */
 4 package json;
 5 
 6 import com.alibaba.fastjson.JSON;
 7 import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
 8 
 9 /**
10  * 测试fastjson序列化时忽略制定属性
11  * 
12  * @author bells
13  * 
14  */
15 public class Main {
16 
17     /**
18      * @param args
19      */
20     public static void main(String[] args) {
21 
22         Person person = new Person(26, "bells", 172, 60);
23 
24         SimplePropertyPreFilter filter = new SimplePropertyPreFilter(); // 构造方法里,也可以直接传需要序列化的属性名字
25 
26         filter.getExcludes().add("age"); // SimplePropertyPreFilter 里面有两个Set,分别为
27                                             // excludes和includes,这两个Set的作用非常明显。
28 
29         System.out.println(JSON.toJSONString(person, filter));
30 
31     }
32 
33 }

 

FastJson序列化时忽略特定属性

标签:des   style   blog   http   color   java   os   ar   art   

原文地址:http://www.cnblogs.com/pigzhu/p/3894325.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!