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
