public static void main(String[] args) {
// Json数组形式的字符串转为List
String arrStr = "[{\"data1\":{\"name\":\"aa\",\"age\":\"12\"},\"data2\":{\"name\":\"bb\",\"age\":\"13\"}}]";
Map<Object, Object> mapObj = ((List<Map<Object, Object>>) JSONArray.parse(arrStr)).stream().flatMap(mapList -> mapList.entrySet().stream()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a, b) -> b));
System.out.println(JSON.toJSONString(new ArrayList<>(mapObj.values())));
//[{"name":"bb","age":"13"},{"name":"aa","age":"12"}]
// ******map.key 转 list*********************************
// 方法1:传统方法
List<Object> listKey = new ArrayList<>(mapObj.keySet());
// 方法2:用stream
List<Object> listKeyStream = mapObj.keySet().stream().collect(Collectors.toList());
// 输出list内容
listKey.forEach(System.out::println);
//data2
//data1
// ******map.value 转 list*********************************
// 方法1:传统方法
List<Object> listValue = new ArrayList<>(mapObj.values());
// 方法2:用stream
List<Object> listValue2 = mapObj.keySet().stream().collect(Collectors.toList());
// 输出list内容
listValue.forEach(System.out::println);
//{"name":"bb","age":"13"}
//{"name":"aa","age":"12"}
// Json数组形式的字符串转为Map数组
String strArr = "[{\"name\":\"aa\", \"age\":\"12\"},{\"name\": \"bb\", \"age\":\"13\"}]";
// 第一种方式
List<Map<String, String>> listObjectFir = (List<Map<String, String>>) JSONArray.parse(strArr);
// 利用JSONArray中的parse方法来解析json数组字符串
for (Map<String, String> mapList : listObjectFir) {
for (Map.Entry entry : mapList.entrySet()) {
System.out.printf("%s %s%n", entry.getKey(), entry.getValue());
//name aa
//age 12
//name bb
//age 13
}
}
// 第二种方式
List<Map<String, String>> listObjectSec = JSONArray.parseObject(strArr, List.class);
// 利用JSONArray中的parseObject方法并指定返回类型来解析json数组字符串
for (Map<String, String> mapList : listObjectSec) {
for (Map.Entry entry : mapList.entrySet()) {
System.out.printf("%s %s", entry.getKey(), entry.getValue());
//name aa
//age 12
//name bb
//age 13
}
}
// 第三种方式
JSONArray listObjectThir = JSONArray.parseArray(strArr);
// 利用JSONArray中的parseArray方法来解析json数组字符串
for (Object mapList : listObjectThir) {
for (Object entry : ((Map) mapList).entrySet()) {
System.out.printf("%s %s", ((Map.Entry) entry).getKey(), ((Map.Entry) entry).getValue());
//name aa
//age 12
//name bb
//age 13
}
}
// 第四种方式
List listObjectFour = JSONArray.parseArray(strArr, Map.class);
// 利用JSONArray中的parseArray方法并指定返回类型来解析json数组字符串
for (Object mapList : listObjectFour) {
for (Object entry : ((Map) mapList).entrySet()) {
System.out.printf("%s %s%n", ((Map.Entry) entry).getKey(), ((Map.Entry) entry).getValue());
//name aa
//age 12
//name bb
//age 13
}
}
// 第五种方式
JSONArray listObjectFifth = JSONObject.parseArray(strArr);
// 利用JSONObject中的parseArray方法来解析json数组字符串
for (Object mapList : listObjectFifth) {
for (Object entry : ((Map) mapList).entrySet()) {
System.out.printf("%s %s%n", ((Map.Entry) entry).getKey(), ((Map.Entry) entry).getValue());
//name aa
//age 12
//name bb
//age 13
}
}
// 第六种方式
List listObjectSix = JSONObject.parseArray(strArr, Map.class);
// 利用JSONObject中的parseArray方法并指定返回类型来解析json数组字符串
for (Object mapList : listObjectSix) {
for (Object entry : ((Map) mapList).entrySet()) {
System.out.printf("%s %s%n", ((Map.Entry) entry).getKey(), ((Map.Entry) entry).getValue());
//name aa
//age 12
//name bb
//age 13
}
}
// 第七种方式
JSONArray listObjectSeven = JSON.parseArray(strArr);
// 利用JSON中的parseArray方法来解析json数组字符串
for (Object mapList : listObjectSeven) {
for (Object entry : ((Map) mapList).entrySet()) {
System.out.printf("%s %s%n", ((Map.Entry) entry).getKey(), ((Map.Entry) entry).getValue());
//name aa
//age 12
//name bb
//age 13
}
}
// 第八种方式
List listObjectEigh = JSONObject.parseArray(strArr, Map.class);
// 利用JSON中的parseArray方法并指定返回类型来解析json数组字符串
for (Object mapList : listObjectEigh) {
for (Object entry : ((Map) mapList).entrySet()) {
System.out.printf("%s %s%n", ((Map.Entry) entry).getKey(), ((Map.Entry) entry).getValue());
//name aa
//age 12
//name bb
//age 13
}
}
// map集合遍历
Map<String, String> tempMap = new HashMap<>();
tempMap.put("a", "12");
tempMap.put("b", "34");
tempMap.put("c", "56");
// 遍历方法一 hashmap entrySet() 遍历
Iterator it = tempMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.printf("key=%s value=%s%n", key, value);
//key=a value=12
//key=b value=34
//key=c value=56
}
// 遍历方法二
for (Map.Entry<String, String> entry : tempMap.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
System.out.printf("key=%s value=%s%n", key, value);
//key=a value=12
//key=b value=34
//key=c value=56
}
// 遍历方法三 hashmap keySet() 遍历
for (Iterator i = tempMap.keySet().iterator(); i.hasNext(); ) {
Object obj = i.next();
// 循环输出key
System.out.println(obj);
System.out.printf("key=%s value=%s%n", obj, tempMap.get(obj));
//a
//key=a value=12
//b
//key=b value=34
//c
//key=c value=56
}
for (Iterator i = tempMap.values().iterator(); i.hasNext(); ) {
Object obj = i.next();
// 循环输出value
System.out.println(obj);
//12
//34
//56
}
// 遍历方法四 treemap keySet()遍历
for (Object o : tempMap.keySet()) {
System.out.printf("key=%s value=%s%n", o, tempMap.get(o));
//key=a value=12
//key=b value=34
//key=c value=56
}
/**
* java遍历 Map<Object, ArrayList> map = new HashMap <>();
*/
//遍历方法一 Iterator
Map<Object, ArrayList> map = new HashMap<>();
Set<Object> keys = map.keySet();
Iterator<Object> iterator = keys.iterator();
while (iterator.hasNext()) {
Object key = iterator.next();
ArrayList arrayList = map.get(key);
for (Object o : arrayList) {
System.out.println(o);
}
}
////遍历方法二 map.entrySet()
Map<Object, List> map2 = new HashMap<>();
for (Map.Entry entry : map2.entrySet()) {
String key = entry.getKey().toString();
List list = (List) entry.getValue();
for (Object value : list) {
System.out.printf("%s====%s%n", key, value);
}
}
}
Json数组形式的字符串转为Map数组 Map集合的几种遍历方式
于 2022-12-16 10:23:53 首次发布