FastJson基本使用

来源:互联网 发布:机械行业erp软件哪家好 编辑:程序博客网 时间:2024/06/03 05:51

1.下载地址
https://github.com/alibaba/fastjson

2.maven

<!-- JAVA --><dependency>    <groupId>com.alibaba</groupId>    <artifactId>fastjson</artifactId>    <version>1.2.36</version></dependency><!-- Android --><dependency>    <groupId>com.alibaba</groupId>    <artifactId>fastjson</artifactId>    <version>1.1.61.android</version></dependency>

3.序列化
序列化就是把JavaBean对象转化成JSON格式的文本。

Object obj = ...;String text = JSON.toJSONString(obj);

在这个例子中,调用JSON.toJSONString方法,把对象obj转化为JSON格式的文本

4.日期格式化

fastjson直接支持日期类型数据的格式化,包括java.util.Date、java.sql.Date、java.sql.Timestamp、java.sql.Time。

缺省情况下,fastjson将Date类型序列化为long,这个使得序列化和反序列化的过程不会导致时区问题。例如:

long  millis = 1324138987429L;Date date = new  Date(millis);        System.out.println(JSON.toJSONString(date));

输出的结果是

1324138987429

fastjson提供了基于格式化输出的SerializerFeature,例如:

JSON.toJSONString(new Date(), SerializerFeature.WriteDateUseDateFormat);

输出的结果为:

"2017-08-09 10:24:22"

利用toJSONStringWithDateFormat可以指定输出日期的格式,比如修改为输出毫秒:

JSON.toJSONStringWithDateFormat(new Date(), "yyyy-MM-dd HH:mm:ss:SSS");

输出的结果为:

"2017-08-09 10:26:41:745"

5.WriteClassName

fastjson支持序列化时写入类型信息,从而使得反序列化时不至于类型信息丢失。例如:

Student student = new Student();student.setName("zhangsan");student.setAge("20");student.setSex("男");String text = JSONObject.toJSONString(student,SerializerFeature.WriteClassName);System.out.println(text);

输出的结果为:

{"@type":"com.wxs.Student","age":"20","name":"zhangsan","sex":"男"}

6.@JSONField Annotation

在某些场景,你可能需要定制序列化输出,比如说,希望序列化采用之后采用”SEX”,而不是”sex”,你可以使用@JSONField这个Annotation。

public  class  Student {    ...    @JSONField(name="SEX")    private String sex;    ...}Student student = ...;JSON.toJSONString(student); // {...,"SEX":"男",...}

7.指定Class反序列化

Student s = JSON.parseObject(text, com.wxs.Student.class);
原创粉丝点击