JSONArray各类型转换
- 一、JSONArray转List
- 1.基础类型数组转换
- 2.对象类型数组转换
- 二、JSONArray转Map
一、JSONArray转List
1.基础类型数组转换
注意:String集合转int集合必须为全数字,否则会报数字格式化异常: For input string: “A”
public static void main(String[] args) {
// 注意:jsonArray必须为全数字,否则会报数字格式化异常: 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]
List转JSONArray---stringListToJSONArray:["1","2"]
jsonArray:["1","2"]
JSONArray string转int[]---jsonArrayToInts:[I@50a7bc6e
JSONArray string转List<Integer>---jsonArrayToIntList:[1, 2]
JSONArray转List<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":"名称"}]
JSONArray转List---jsonArrayTolist:[User(name=名称, code=编码), User(name=名称, code=密码)]
List转JSONArray---listToJSONArray:[{"code":"编码","name":"名称"},{"code":"密码","name":"名称"}]
二、JSONArray转Map<String,String>
注意:作为key值得属性不能有重复,否则会报: 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:三