FastJson基本使用

本文介绍了FastJSON的基本使用方法,包括下载、Maven依赖配置、序列化、日期格式化、类型信息保留、字段名称定制及指定Class反序列化等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值