1. 添加依赖, maven 的 pom.xml 文件中添加以下依赖
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.47</version>
- </dependency>
2.FastJSON 序列化和反序列化工具类
- import java.util.List;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- // JSON / 对象转换类
- public class JsonUtils {
- /**
- * JSON 字符串转换成对象
- */
- public static <T> T jsonStringToObject(String jsonStr,Class<T> obj){
- try{
- return JSONObject.parseObject(jsonStr, obj);
- }catch(Exception e){
- System.out.println("将 JSON 串 {} 转换成 指定对象失败:"+jsonStr);
- e.printStackTrace();
- }
- return null;
- }
- /**
- * 对象转 JSON
- */
- public static <T> String objectToJson(T obj){
- try{
- String JSON=JSONObject.toJSONString(obj);
- return JSON;
- }catch(Exception e){
- System.out.println("将指定对象转成 JSON 串 {} 失败:"+obj.toString());
- e.printStackTrace();
- }
- return "";
- }
- /**
- * List<T > 对象转成 JSON
- */
- public static<T> String listToJsonString(List<T> objList){
- try{
- String JSON=JSONObject.toJSONString(objList);
- return JSON;
- }catch(Exception e){
- System.out.println("将对象列表转成 JSON 串 {} 失败:"+objList.toString());
- e.printStackTrace();
- }
- return "";
- }
- /**
- * JSON 转换成对象列表 List<T>
- */
- public static <T> List<T> jsonStringToList(String JSON,Class<T> obj){
- try{
- return JSONArray.parseArray(JSON, obj);
- }catch(Exception e){
- System.out.println("将 JSON 串 {} 转成对象列表失败:"+JSON);
- e.printStackTrace();
- }
- return null;
- }
- /*
- * 将 JSON 串转换为 JSONOBJECT
- */
- public static JSONObject stringTOJSONObject(String JSON){
- JSONObject jsonObject = null;
- try {
- jsonObject = JSONObject.parseObject(JSON);
- } catch (Exception e) {
- System.out.println("JSON 串{} 转换成 JsonObject 失败"+JSON);
- }
- return jsonObject;
- }
- }
3. 使用
(1)序列化
- List<User> users=new ArrayList<User>();
- for(int i=0;i<20;i++){
- User user=new User();
- user.setName("FastJSON"+i);
- user.setAge(20+i);
- SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
- user.setBirthday(dateformat.parse("1991-10-01"));
- user.setEmail("12345678"+i+"@qq.com");
- // 序列化单个对象
- String JSON=JsonUtils.objectToJson(user);
- users.add(user);
- // 序列化对象列表
- // String JSON=JsonUtils.listToJsonString(users);
- }
(2)反序列化
- // 反序列化单个对象
- User u=JsonUtils.jsonStringToObject(JSON, User.class);
- System.out.println(u.toString());
- // 将 JSON 串转换为 JSONOBJECT
- JSONObject JS=JsonUtils.stringTOJSONObject(JSON);
- System.out.println(JS);
- // 反序列化对象列表
- List<User> list=JsonUtils.jsonStringToList(JSON, User.class);
- System.out.println(list);
来源: http://www.bubuko.com/infodetail-2867314.html