码迷,mamicode.com
首页 > 编程语言 > 详细

Java中使用FastJSON进行对象的序列化和反序列化

时间:2018-11-30 18:22:45      阅读:457      评论:0      收藏:0      [点我收藏+]

标签:工具   添加   ace   序列   too   nts   XML   arraylist   public   

Java中使用FastJSON进行对象的序列化和反序列化

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);

Java中使用FastJSON进行对象的序列化和反序列化

标签:工具   添加   ace   序列   too   nts   XML   arraylist   public   

原文地址:http://blog.51cto.com/59465168/2324480

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!