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


猜你喜欢

转载自blog.csdn.net/liangmaoxuan/article/details/80640259