Fastjson 对象或数组转JSON(网络摘抄)

Fastjson 对象或数组转JSON

 

一、在maven中央仓库中直接下载:

http://repo1.maven.org/maven2/com/alibaba/fastjson/

或者配置maven依赖

<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>fastjson</artifactId>

    <version>x.x.x</version>

</dependency>

 

二、示例

// 构建用户组对象

UserGroup group = new UserGroup();

group.setName("admin");

1、// 用户组对象转JSON串

String jsonString = JSON.toJSONString(group);

2、// JSON串转用户组对象

UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class);

 

// 构建用户对象数组 

User[] users = new User[2]; 

3、// 用户对象数组转JSON串 

String jsonString2 = JSON.toJSONString(users); 

4、// JSON串转用户对象列表 

List<User> users2 = JSON.parseArray(jsonString2, User.class);

 

三、有关类库的一些说明

SerializeWriter:相当于StringBuffer

JSONArray:相当于List<Object>

JSONObject:相当于Map<String, Object>

JSON反序列化没有真正数组,本质类型都是List<Object>

 

四、Fastjson 定制序列化

fastjson支持多种方式定制序列化。

  • 通过@JSONField定制序列化

@JSONField配置在字段或者getter/setter方法上

  • 通过@JSONType定制序列化

JSONField类似,但JSONType配置在类上

  • 通过SerializeFilter定制序列化

1、PropertyPreFilter 根据PropertyName判断是否序列化

  1. PropertyFilter 根据PropertyName和PropertyValue来判断是否序列化

3、NameFilter 修改Key,如果需要修改Key,process返回值则可

  1. ValueFilter 修改Value
  2. BeforeFilter 序列化时在最前添加内容
  3. AfterFilter 序列化时在最后添加内容

 

  • 通过ParseProcess定制反序列化

五、fastjson主要的使 用入口

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

1// JSON文本parseJSONObject或者JSONArray
public static final Object parse(String text); 
2// JSON文本parseJSONObject
public static final JSONObject parseObject(String text)   
3// JSON文本parseJavaBean 
public static final <T> T parseObject(String text, Class<T> clazz); 
4// JSON文本parseJSONArray
public static final JSONArray parseArray(String text); 
5//JSON文本parseJavaBean集合
public static final <T> List<T> parseArray(String text, Class<T> clazz); 
6// JavaBean序列化为JSON文本
public static final String toJSONString(Object object);
7// JavaBean序列化为带格式的JSON文本  
public static final String toJSONString(Object object, boolean prettyFormat); 
8、将JavaBean转换为JSONObject或者JSONArray
public static final Object toJSON(Object javaObject); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值