fastJSON介绍: javascript
阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分。 java
它具有以下特征:1、速度最快,测试代表,fastjson具备极快的性能,超越任其余的Java Json parser,包括自称最快的JackJson; sql
2、功能强大,彻底支持Java Bean、集合、Map、日期、Enum,支持范型,支 持泛型;无依赖,可以直接运行在Java SE 5.0以上版本;支持Android;开源 json
序列化就是把JavaBean对象转化成JSON格式的文本。 数组
String obj="{name:'xx',age:13}"; 工具
String jsonStr=JSON.toJSONString(obj); 性能
标准的JSON是使用双引号的,javascript支持使用单引号格式的json文本,fastjson也支持这个特性,打开SerializerFeature.UseSingleQuotes这个特性就能够了了,例如: 测试
String obj="{name:'xx',age:13}"; spa
String jsonStr=JSON.toJSONString(obj,SerializerFeature.UseSingleQuotes); orm
fastjson序列化时能够选择的SerializerFeature有十几个,你能够按照本身的须要去选择使用。
fastjson直接支持日期类型数据的格式化,包括java.util.Date、java.sql.Date、java.sql.Timestamp、java.sql.Time。例如:
Date date=new Date();
JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat);
输出的结果为:"2011-12-18 00:23:07"
也能够指定格式:
JSON.toJSONStringWithDateFormat(date,"yyyy-MM-dd HH:mm:ss.SSS");
输出的结果为:"2011-12-18 00:23:07.429"
反序列化
对于字符串的过滤这里推荐多个过滤
fastJSON中提供一个很好的Filter:SimplePropertyPreFilter,能够对多个须要过滤的字段进行过滤。
例如:
List<Person> list = new ArrayList<Person>();
list.add(new Person("lisi", 19, 159785));
list.add(new Person("wangwu", 10, 113123213));
list.add(new Person("zhaoliu", 29, 1444785));
//这里须要一个数组用来设置须要显示的字段下面这三个属性都须要显示,
String[] s=new String[]{"age","name","num"};
SimplePropertyPreFilter f= new SimplePropertyPreFilter(Person.class,s);
String j=JSON.toJSONString(new Person("lisi", 19, 159785), f);
System.out.println(j);
输出结果为:{"age":19,"name":"lisi","num":159785}