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

Fastjson 对象或数组转JSON

 

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

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

或者配置maven依赖

<dependency>

    <groupId>com.alibabagroupId>

    <artifactId>fastjsonartifactId>

    <version>x.x.xversion>

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 users2 = JSON.parseArray(jsonString2, User.class);

 

三、有关类库的一些说明

SerializeWriter:相当于StringBuffer

JSONArray:相当于List

JSONObject:相当于Map

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

 

四、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 parseObject(String text, Class clazz); 
4// JSON文本parseJSONArray
public static final JSONArray parseArray(String text); 
5//JSON文本parseJavaBean集合
public static final  List parseArray(String text, Class 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); 

 

你可能感兴趣的:(JAVA)