根据数据中的key获取value值
一、测试数据准备
List<Map<String, String>> result = new ArrayList(); Map<String, String> map = new HashMap<>(); map.put("san", "张三"); map.put("si", "李四"); map.put("wu", "王五"); map.put("wang", "老王"); map.put("lao", "老张"); result.add(map);
二、将list<Map<String, String>>的结构数据转换成json数组
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSON(result).toString());
System.out.println(jsonArray);
结果如下:
-------------------------------------------------------------------------------------------------
--------------[{"san":"张三","wang":"老王","si":"李四","lao":"老张","wu":"王五"}]-------------------
-------------------------------------------------------------------------------------------------
三、获取json数组中对应key的值
// 1.首先对数据进行遍历 for (Object o : jsonArray) { // 2.其次再将object转成JsonObject类型 JSONObject jsonObject = (JSONObject) JSONObject.parse(JSON.toJSONString(o)); // 3.最后根据对应key获取对应的value值 System.out.println(jsonObject.get("san")); System.out.println(jsonObject.get("wang")); System.out.println(jsonObject.get("si")); System.out.println(jsonObject.get("lao")); System.out.println(jsonObject.get("wu")); } 结果如下: --------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- ------------------------------张三 老王 李四 老张 王五----------------------------------------- --------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
四、调用Entry对象中的getkey()和getValue()方法获取键值
/** * 如果既要遍历key又要value,那么建议这种方式,应为如果先获取keySet然后再执行 * map.get(key),map内部会执行两次遍历。 * 一次是在获取keySet的时候,一次是在遍历所有key的时候。 * 当我调用put(key,value)方法的时候,首先会把key和value封装到 * Entry这个静态内部类对象中,把Entry对象再添加到数组中,所以我们想获取 * map中的所有键值对,我们只要获取数组中的所有Entry对象,接下来 * 调用Entry对象中的getKey()和getValue()方法就能获取键值对了 */ Set<java.util.Map.Entry<String, String>> entrys = map.entrySet(); for (java.util.Map.Entry<String, String> entry : entrys) { System.out.println(entry.getKey() + "--" + entry.getValue()); } 结果如下: -------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------- ------------------------------------san--张三------------------------------------------ ------------------------------------wang--老王----------------------------------------- ------------------------------------si--李四------------------------------------------- ------------------------------------lao--老张------------------------------------------ ------------------------------------wu--王五------------------------------------------- -------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------
古今成大事者,不唯有超世之才,必有坚韧不拔之志!