主要的使 用入口
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject);// 将JavaBean转换为JSONObject或者JSONArray。
有关类库的一些说明
SerializeWriter:相当于StringBuffer
JSONArray:相当于List<Object>
JSONObject:相当于Map<String, Object>
JSON反序列化没有真正数组,本质类型都是List<Object>
maven项目可以直接引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
</dependency>
以下只是部分简单示例
import java.util.Arrays;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonToList {
public static void main(String[] args) {
List<User> usList=Arrays.asList(new User(1, "小王",1,22),
new User(2, "小王",2,22),
new User(3, "小明",1,23));
//List转JSON
String s=JSON.toJSONString(usList);
System.out.println(s);
//JSON转List方法1
List<User> student1 = JSON.parseArray(s,User.class);
System.out.println(student1);
//JSON转List方法2
List<User> student2 = JSONArray.parseArray(s).toJavaList(User.class);
System.out.println(student2);
//JSON转List方法3
List<User> student3 = JSON.parseObject(s,new TypeReference<List<User>>(){});
System.out.println(student3);
System.out.println("-----------------分割线-----------------");
User user=new User(1, "小谢",1,26);
String str=JSON.toJSONString(user);
System.out.println(str);
JSONObject jsonObject=(JSONObject) JSON.toJSON(user);
System.out.println(jsonObject);
}
}
打印结果如下:
[{"age":22,"sex":1,"userId":1,"username":"小王"},{"age":22,"sex":2,"userId":2,"username":"小王"},{"age":23,"sex":1,"userId":3,"username":"小明"}]
[User [userId=1, username=小王, sex=1, age=22], User [userId=2, username=小王, sex=2, age=22], User [userId=3, username=小明, sex=1, age=23]]
[User [userId=1, username=小王, sex=1, age=22], User [userId=2, username=小王, sex=2, age=22], User [userId=3, username=小明, sex=1, age=23]]
[User [userId=1, username=小王, sex=1, age=22], User [userId=2, username=小王, sex=2, age=22], User [userId=3, username=小明, sex=1, age=23]]
-----------------分割线-----------------
{"age":26,"sex":1,"userId":1,"username":"小谢"}
{"sex":1,"userId":1,"age":26,"username":"小谢"}