JSONArray转List

一、JSONArray转List

1.基础类型数组转换

注意:String集合转int集合必须为全数字,否则会报数字格式化异常java.lang.NumberFormatException: For input string: “A”

    public static void main(String[] args) {
    
    
        // 注意:jsonArray必须为全数字,否则会报数字格式化异常java.lang.NumberFormatException: For input string: "A"
        // List<String>
        List<String> stringList = Arrays.asList("1", "2");
        System.out.println("stringList:" + stringList);
        
        // List<String> 转 int[]
        int[] stringListToInts =  stringList.stream().mapToInt(value1 -> Integer.parseInt(value1)).toArray();
        System.out.println("List<String>转int[]---stringListToInts:" + stringListToInts);
        
        // int[] 转 List<Integer>
        List<Integer> intToIntList = Arrays.stream(stringListToInts).boxed().collect(Collectors.toList());
		System.out.println("int[]转List<Integer>---intToIntList :" + intToIntList);
		
        // List<String> 转 List<Integer>
        List<Integer> stringListToIntList = stringList.stream().mapToInt(Integer::parseInt).boxed().collect(Collectors.toList());
        System.out.println("List<String>转List<Integer>---stringListToIntList:" + stringListToIntList);
        
        // List 转 JSONArray
        JSONArray stringListToJSONArray = JSONArray.parseArray(JSON.toJSONString(stringList));
        System.out.println("List转JSONArray---stringListToJSONArray:" + stringListToJSONArray.toJSONString());
        
        // JSONArray jsonArray = ["1","2"]
        JSONArray jsonArray = JSON.parseArray("[\"1\",\"2\"]");
        System.out.println("jsonArray:" + jsonArray.toJSONString());
        
        // JSONArray string 转 int[]
        int[] jsonArrayToInts = jsonArray.stream().mapToInt(value1 -> Integer.parseInt(value1.toString())).toArray();
        System.out.println("JSONArray string转int[]---jsonArrayToInts:" + jsonArrayToInts.toString());
        
        // JSONArray string 转 List<Integer>
        List<Integer> jsonArrayToIntList = jsonArray.stream().mapToInt(value1 -> Integer.parseInt(value1.toString())).boxed().collect(Collectors.toList());
        System.out.println("JSONArray string转List<Integer>---jsonArrayToIntList:" + jsonArrayToIntList);
        
        // JSONArray 转 List<String>
        List<String> jsonArrayToStringList = JSONObject.parseArray(jsonArray.toJSONString(),String.class);
        System.out.println("JSONArray转List<String>---jsonArrayToStringList:" + jsonArrayToStringList);
        
    }

输出结果

stringList:[1, 2]
List<String>int[]---stringListToInts:[I@1ad282e0
int[]List<Integer>---intToIntList :[1, 2]
List<String>List<Integer>---stringListToIntList:[1, 2]
ListJSONArray---stringListToJSONArray:["1","2"]
jsonArray:["1","2"]
JSONArray string转int[]---jsonArrayToInts:[I@50a7bc6e
JSONArray string转List<Integer>---jsonArrayToIntList:[1, 2]
JSONArrayList<String>---jsonArrayToStringList:[1, 2]

2.对象类型数组转换

    public static void main(String[] args) {
    
    
        // JSONArray
        JSONArray jsonArray = JSONArray.parseArray("[{\"name\":\"名称\",\"code\":\"编码\"},{\"name\":\"名称\",\"code\":\"密码\"}]");
        System.out.println("jsonArray:" + jsonArray.toJSONString());

        // JSONArray转List
        List<User> jsonArrayTolist = JSONArray.parseArray(jsonArray.toJSONString(), User.class);
        System.out.println("JSONArray转List---jsonArrayTolist:" + jsonArrayTolist);

        // List<User>转JSONArray
        JSONArray listToJSONArray = JSONArray.parseArray(JSON.toJSONString(jsonArrayTolist));
        System.out.println("List转JSONArray---listToJSONArray:" + listToJSONArray);
    }

输出结果

jsonArray:[{
    
    "code":"编码","name":"名称"},{
    
    "code":"密码","name":"名称"}]
JSONArrayList---jsonArrayTolist:[{
    
    "code":"编码","name":"名称"}, {
    
    "code":"密码","name":"名称"}]
ListJSONArray---listToJSONArray:[{
    
    "code":"编码","name":"名称"},{
    
    "code":"密码","name":"名称"}]

二、JSONArray转Map<String,String>

注意:作为key值得属性不能有重复,否则会报java.lang.IllegalStateException: Duplicate key " " 异常

public static void main(String[] args) {
    
    
        JSONArray jsonArray = JSON.parseArray("[{\"ID\":\"3\",\"NAME\":\"三\"},{\"ID\":\"2\",\"NAME\":\"二\"},{\"ID\":\"1\",\"NAME\":\"一\"}]");
        System.out.println("初始化JSONArray:" + jsonArray.toJSONString());
        Map<String, String> map = jsonArray.stream().collect(Collectors.toMap(o -> {
    
    
            JSONObject json = (JSONObject) o;
            // ID值作为map的key
            return json.getString("ID");
        }, o -> {
    
    
            JSONObject json = (JSONObject) o;
            // NAME值作为map的value
            return json.getString("NAME");
        }));
        System.out.println("JSONArray转map为:");
        for (String key : map.keySet()) {
    
    
            System.out.println("key:"+ key + ",value:" + map.get(key));
        }
    }

输出结果

初始化JSONArray:[{
    
    "ID":"3","NAME":"三"},{
    
    "ID":"2","NAME":"二"},{
    
    "ID":"1","NAME":"一"}]
JSONArray转map为:
key:1,value:一
key:2,value:二
key:3,value:

猜你喜欢

转载自blog.csdn.net/weixin_43948460/article/details/127800323