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判断是否序列化
- PropertyFilter 根据PropertyName和PropertyValue来判断是否序列化
3、NameFilter 修改Key,如果需要修改Key,process返回值则可
- ValueFilter 修改Value
- BeforeFilter 序列化时在最前添加内容
- AfterFilter 序列化时在最后添加内容
- 通过ParseProcess定制反序列化
五、fastjson主要的使 用入口
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
1、// 把JSON文本parse为JSONObject或者JSONArray
public static final Object parse(String text);
2、// 把JSON文本parse成JSONObject
public static final JSONObject parseObject(String text);
3、// 把JSON文本parse为JavaBean
public static final <T> T parseObject(String text, Class<T> clazz);
4、// 把JSON文本parse成JSONArray
public static final JSONArray parseArray(String text);
5、//把JSON文本parse成JavaBean集合
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);