喜欢开源
对阿里的东西都很感兴趣,在这个json 大行其道的年代,这次整理一下fastjson
下载地址:点击打开链接
操作文档和中文手册,maven依赖,常用问题 都在这里:点击打开链接
下面要谈的是我的实际操作和理解
1、对他的了解源于很久以前 我们的项目有一段关于alibaba.json的报错,从此就用起来这个东西,感觉还不错,效率挺高
接下来我只粘贴具体操作的代码,其余复制代码详见我的GitHub
生命一下参数列表中的group 、FastJsonGroup 均是实体bean
对象转json(序列化)
- 对象转json 赤裸裸的
String json2String = JSON.toJSONString(group);
- 对象转json带上空值(如果值为空,输出null)
String json2StringWithNull = JSON.toJSONString(group, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullListAsEmpty);
- 对象转json格式化时间
/**
* 带时间格式化的输出
* 识别的时间格式(来自官方文档)
* ISO-8601日期格式
* yyyy-MM-dd
* yyyy-MM-dd HH:mm:ss
* yyyy-MM-dd HH:mm:ss.SSS
* 毫秒数字
* 毫秒数字字符串
* .NET JSON日期格式
* new Date(198293238)
*/
String json2StringWithDateFormat1 = JSON.toJSONStringWithDateFormat(group, "yyyy-MM-dd HH:mm:ss.SSS");//(2017-03-17 11:34:00.203)
String json2StringWithDateFormat2 = JSON.toJSONString(group, SerializerFeature.UseISO8601DateFormat);//2017-03-17T11:38:46.407+08:00
官方给了一个设置全局更改时间的方案: JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
String json2StringWithDateFormat3 = JSON.toJSONString(group, SerializerFeature.WriteDateUseDateFormat);
字符串转对象(对象反序列化)- 字符串转对象(赤裸裸)
FastJsonGroup backGroup =JSON.parseObject(json2StringWithDateFormat3,FastJsonGroup.class);
- 对生成的json字符串进行指定(比如要把实体属性的id,转化为ID输出为json)
/**
* 使用@JSONField配置 进行定制序列化
* 自定义返回在JSON传中的字段样式
* 这样更改不会影响序列化和反序列化的操作
*/
@JSONField(name="ID")
private Long id;
@JSONField(name="Name")
private String name;
// 配置date序列化和反序列使用yyyyMMdd日期格式
@JSONField(format="yyyyMMdd")
private Date dateTime;
//指定字段不序列化
@JSONField(serialize=false)
private String sex;
//指定字段的顺序
@JSONField(ordinal = 1)
private String order;
以上的@JSONField 在每个属性上只能用一个 ,写多个就报错