Json字符串轉對象和轉List集合操作(alibabab版本)

Json字符串轉對象和轉List集合操作(alibabab版本)


Json是當前開發用得最多基於JavaScript語言的輕量級的數據交換格式,總結一下常用轉換格式的方法,以便日後使用方便


以下爲 alibabab 包各種 JSON 轉換的方法總結:

1. 所需引入的第三方包:

                <dependency>
			<groupId>commons-beanutils</groupId>
			<artifactId>commons-beanutils</artifactId>
			<version>1.9.3</version>
		</dependency>

		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.1</version>
		</dependency>

		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
		</dependency>

		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.2</version>
		</dependency>
		
		<dependency>
			<groupId>net.sf.ezmorph</groupId>
			<artifactId>ezmorph</artifactId>
			<version>1.0.4</version>
		</dependency>
		
		<dependency>
			<groupId>net.sf.json-lib</groupId>
			<artifactId>json-lib</artifactId>
			<version>2.4</version>
			<classifier>jdk13</classifier>
		</dependency>
		
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.28</version>
		</dependency>

2. 對象User類

package com.lmx.demo;

public class User
{

    private String cId;

    private String uName;

    private String pwd;

    public  User(){
       
    }
    public  User(String cId, String uName, String pwd){
        
        this.cId = cId;
        this.uName = uName;
        this.pwd = pwd;
        
    }
    
    public String getcId()
    {
        return cId;
    }

    public void setcId(String cId)
    {
        this.cId = cId;
    }

    public String getuName()
    {
        return uName;
    }

    public void setuName(String uName)
    {
        this.uName = uName;
    }

    public String getPwd()
    {
        return pwd;
    }

    public void setPwd(String pwd)
    {
        this.pwd = pwd;
    }

}


3. Json各類轉換

package com.lmx.demo;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
 * alibaba 第三方包 Json 轉換用法
 * @author LMX
 *
 */
public class Main
{

    /**
     * 1.通過JSON.parse把json轉換爲Map
     * 
     * @param jsonStr
     */
    public void getJsonToMap()
    {
        String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
        Map maps = (Map)JSON.parse(jsonStr);
        for (Object map : maps.entrySet())
        {
            System.out.println(
                "key爲:" + ((Map.Entry)map).getKey() + ", 值爲:" + ((Map.Entry)map).getValue());
        }
        
              /* 
                              輸出:   key爲:address, 值爲:sz
                       key爲:Id, 值爲:1
                       key爲:userName, 值爲:lmx
                       key爲:pwd, 值爲:123456   
              */

    }

    /**
     * 2.通過JSON.parseObject把json轉換爲Map
     * 
     * @param jsonStr
     * @return
     */
    public void getJsonToMapByClass()
    {
        String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
        Map mapTypes = JSON.parseObject(jsonStr, Map.class);
        for (Object obj : mapTypes.keySet())
        {
            System.out.println("key爲:" + obj + ", 值爲:" + mapTypes.get(obj));
        }
           /*  輸出:  key爲:address, 值爲:sz
                      key爲:Id, 值爲:1
                      key爲:userName, 值爲:lmx
                      key爲:pwd, 值爲:123456
             */
    }

    /**
     * 3.通過JSON.parseObject把json轉換爲Object
     * 
     * @param jsonStr
     * @return
     */
    public void getJsonToObject()
    {
        String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
        Map mapTypes = JSON.parseObject(jsonStr);
        for (Object obj : mapTypes.keySet())
        {
            System.out.println("key爲:" + obj + ", 值爲:" + mapTypes.get(obj));
        }
        
                /* 輸出: key爲:address, 值爲:sz
                         key爲:Id, 值爲:1
                         key爲:userName, 值爲:lmx
                         key爲:pwd, 值爲:123456
                */
    }

    /**
     * 4.通過JSONObject.parse把json轉換爲Map
     * 
     * @param jsonStr
     */
    public void getJSONObjectToMap()
    {
        String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
        Map json = (Map)JSONObject.parse(jsonStr);
        for (Object map : json.entrySet())
        {
            System.out.println(
                "key爲:" + ((Map.Entry)map).getKey() + ", 值爲:" + ((Map.Entry)map).getValue());
        }
               /* 輸出: key爲:address, 值爲:sz
                        key爲:Id, 值爲:1
                        key爲:userName, 值爲:lmx
                        key爲:pwd, 值爲:123456
                 */
    }

    /**
     * 5.通過JSONObject.parseObject把json轉換爲JSONObject,並遍歷單Object輸出
     * 
     * @param jsonStr
     */
    public void getJSONObjectToObject()
    {
        String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        for (Object map : jsonObject.entrySet())
        {
            System.out.println(
                "key爲:" + ((Map.Entry)map).getKey() + ", 值爲:" + ((Map.Entry)map).getValue());
        }
        
            /* 輸出: key爲:address, 值爲:sz
                     key爲:Id, 值爲:1
                     key爲:userName, 值爲:lmx
                     key爲:pwd, 值爲:123456
             */
    }

    /**
     * 6.通過JSONObject.parseObject把json轉換爲Map
     * 
     * @param jsonStr
     */
    public void getJSONObjectToMapClass()
    {
        String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
        Map mapObj = JSONObject.parseObject(jsonStr, Map.class);

        for (Object map : mapObj.entrySet())
        {
            System.out.println(
                "key爲:" + ((Map.Entry)map).getKey() + ", 值爲:" + ((Map.Entry)map).getValue());
        }
        
        /* 輸出: key爲:address, 值爲:sz
                 key爲:Id, 值爲:1
                 key爲:userName, 值爲:lmx
                 key爲:pwd, 值爲:123456
          */
    }

    ////////////// List集合和JSON相互轉換工具類//////////////////////////
    /**
     * 7.通過JSON.toJSONString把List<T>轉換爲json
     * 
     * @param obj
     * @return
     */
    public static <T> String getListToJson(List<T> obj)
    {
        String jsonStr = JSON.toJSONString(obj);
        return jsonStr;
        // String輸出: ["aa","bb","cc"]
        // userModel輸出: [{"cId":"100","pwd":"123456","uName":"lmx"},{"cId":"200","pwd":"123456","uName":"jqy"}]
    }

    /**
     * 8.通過JSONArray.parseArray把json轉換爲List<T>
     * 
     * @param jsonStr
     * @param model
     * @return
     */
    public static <T> List<T> getStringToList(String jsonStr, Class<T> model)
    {
        List<T> object = (List<T>)JSONArray.parseArray(jsonStr, model);
        return object;
        // String輸出: "aa","bb","cc"
        // userModel輸出: lmx,jqy
    }

    ////////////// 對象和JSON相互轉換工具類/////////////////////////

    /**
     * 9.通過JSONObject.toJSONString把對象轉換爲String
     * @param model
     * @return
     */
    public static <T> String getObjectToJson(T model)
    {
        String StrObject = JSONObject.toJSONString(model);
        return StrObject;
        
        // User輸出: {"cId":"100","pwd":"123456","uName":"lmx"}
        // Map輸出:  {"uName":"llmmxx","pwd":"123","cId":"300"}
    }

   
    /**
     * 10.通過JSONObject.parseObject把String轉換爲對象
     * @param jsonStr
     * @param model
     * @return
     */
    public static <T> T getStringToObject(String jsonStr, Class<T> model)
    {
        return JSONObject.parseObject(jsonStr, model);
        
        // User輸出:  {"cId":"100","pwd":"123456","uName":"lmx"}
        // Map輸出:   {"uName":"llmmxx","pwd":"123","cId":"300"}
 
    }

    /**
     * 11 .通過fluentPut添加一個值
     * fluentPutAll  fluentPut
     * @param jsonStr
     * @return 
     */
    public void setAddJSONObject()
    {
        String jsonStr = "{\"userName\":\"lmx\",\"pwd\":\"123456\",\"address\":\"sz\",\"Id\":\"1\"}";
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        jsonObject.fluentPut("lll", "111");
        
        Map<String, String> der = new HashMap<String, String>();
        der.put("der1", "der1");
        der.put("der2", "der2");
        der.put("der3", "der3");
        jsonObject.fluentPutAll(der);
        //jsonObject.fluentClear();清除
        for (Object map : jsonObject.entrySet())
        {
            System.out.println(
                "key爲:" + ((Map.Entry)map).getKey() + ", 值爲:" + ((Map.Entry)map).getValue());
        }
        
          /*  輸出: key爲:uName, 值爲:lmx
                    key爲:pwd, 值爲:123456
                    key爲:der3, 值爲:der3
                    key爲:lll, 值爲:111
                    key爲:der1, 值爲:der1
                    key爲:cId, 值爲:100
                    key爲:der2, 值爲:der2
              */
       
    }

    @SuppressWarnings("static-access")
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub

      

        Main m = new Main();

        // 1
        System.out.println("getJsonToMap:");
        m.getJsonToMap();
        // 2
        System.out.println("getJsonToMapByClass:");
        m.getJsonToMapByClass();
        // 3
        System.out.println("getJsonToObject:");
        m.getJsonToObject();
        // 4
        System.out.println("getJSONObjectToMap:");
        m.getJSONObjectToMap();
        // 5
        System.out.println("getJSONObjectToObject:");
        m.getJSONObjectToObject();
        // 6
        System.out.println("getJSONObjectToMapClass:");
        m.getJSONObjectToMapClass();

        // 7.1 String
        System.out.println("getListToJson by String:");
        List<String> StrModel = new ArrayList<String>();
        StrModel.add("aa");
        StrModel.add("bb");
        StrModel.add("cc");
        String strString = m.getListToJson(StrModel);
        System.out.println(strString);

        // 7.2 User
        System.out.println("getListToJson by userModel:");
        List<User> userModel = new ArrayList<User>();
        User u = new User();
        u.setcId("100");
        u.setuName("lmx");
        u.setPwd("123456");

        User u1 = new User();
        u1.setcId("200");
        u1.setuName("jqy");
        u1.setPwd("123456");

        userModel.add(u);
        userModel.add(u1);

        String strUser = m.getListToJson(userModel);
        System.out.println(strUser);

        // 8.1 String 
        System.out.println("getJsonToList by String:");
        List<String> strLists = m.getStringToList(strString, String.class);
        for (String strList : strLists)
        {
            System.out.println(strList);
        }
        
        //8.2 User對象
        System.out.println("getJsonToList by User:");
        List<User> userLists = m.getStringToList(strUser,User.class);
        for (User userList : userLists)
        {
            System.out.println(userList.getuName());
        }
        
        //9.1 User對象
        System.out.println("getObjectToJson by User:");
        String strUsers  = m.getObjectToJson(u);
        System.out.println(strUsers);
        
        //9.2 Map
        System.out.println("getObjectToJson by Map:");
        Map<String , String> userMap = new HashMap<String, String>();
        userMap.put("cId", "300");
        userMap.put("uName", "llmmxx");
        userMap.put("pwd", "123");
        String strUsersMap  = m.getObjectToJson(userMap);
        System.out.println(strUsersMap);
        
        
/*        //9.3 User對象
        System.out.println("getObjectToJson by User:");
        String strObjectUser = m.getObjectToJson(strUsers);
        System.out.println(strObjectUser);
        
        //9.4 Map對象
        System.out.println("getObjectToJson by Map:");
        String strObjectMap  = m.getObjectToJson(strUsersMap);
        System.out.println(strObjectMap);*/
        
        //10.1 User對象
        System.out.println("getStringToObject by User:");
        User stringObjectUser  = m.getStringToObject(strUsers,User.class);
        System.out.println(JSONObject.toJSONString(stringObjectUser).toString());
        
        //10.2 Map對象
        System.out.println("getStringToObject by Map:");
        Map stringObjectMap  = m.getStringToObject(strUsersMap,Map.class);
        System.out.println(JSONObject.toJSONString(stringObjectMap).toString());
        
        
         //11
        System.out.println("setAddJSONObject by User:");
        m.setAddJSONObject();
       
    }

}


Json字符串轉對象和轉List集合操作(json-lib版本)

https://blog.csdn.net/liangmaoxuan/article/details/80642880



總結不好多多擔待,文章只單純個人總結,如不好勿噴,技術有限,有錯漏麻煩指正提出。本人QQ:373965070


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章