JSONArray转List

JSONArray各类型转换

  • 一、JSONArray转List
    • 1.基础类型数组转换
    • 2.对象类型数组转换
  • 二、JSONArray转Map

一、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
        List stringList = Arrays.asList("1", "2");
        System.out.println("stringList:" + stringList);
        
        // List 转 int[]
        int[] stringListToInts =  stringList.stream().mapToInt(value1 -> Integer.parseInt(value1)).toArray();
        System.out.println("List转int[]---stringListToInts:" + stringListToInts);
        
        // int[] 转 List
        List intToIntList = Arrays.stream(stringListToInts).boxed().collect(Collectors.toList());
		System.out.println("int[]转List---intToIntList :" + intToIntList);
		
        // List 转 List
        List stringListToIntList = stringList.stream().mapToInt(Integer::parseInt).boxed().collect(Collectors.toList());
        System.out.println("List转List---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
        List jsonArrayToIntList = jsonArray.stream().mapToInt(value1 -> Integer.parseInt(value1.toString())).boxed().collect(Collectors.toList());
        System.out.println("JSONArray string转List---jsonArrayToIntList:" + jsonArrayToIntList);
        
        // JSONArray 转 List
        List jsonArrayToStringList = JSONObject.parseArray(jsonArray.toJSONString(),String.class);
        System.out.println("JSONArray转List---jsonArrayToStringList:" + jsonArrayToStringList);
        
    }

输出结果

stringList:[1, 2]
List转int[]---stringListToInts:[I@1ad282e0
int[]转List---intToIntList :[1, 2]
List转List---stringListToIntList:[1, 2]
List转JSONArray---stringListToJSONArray:["1","2"]
jsonArray:["1","2"]
JSONArray string转int[]---jsonArrayToInts:[I@50a7bc6e
JSONArray string转List---jsonArrayToIntList:[1, 2]
JSONArray转List---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 jsonArrayTolist = jsonArray.toJavaList(User.class);
        System.out.println("JSONArray转List---jsonArrayTolist:" + jsonArrayTolist);

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

输出结果

jsonArray:[{"code":"编码","name":"名称"},{"code":"密码","name":"名称"}]
JSONArray转List---jsonArrayTolist:[User(name=名称, code=编码), User(name=名称, code=密码)]
List转JSONArray---listToJSONArray:[{"code":"编码","name":"名称"},{"code":"密码","name":"名称"}]

二、JSONArray转Map

注意:作为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 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:三

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/98eac4eb12.html