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.toJavaList(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:[User(name=名称, code=编码), User(name=名称, code=密码)]
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:
  • 17
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值