Json字符串的格式非常清晰,而且易于阅读。这使得其成为传输和存储数据的一种理想格式。在Java中,将Json字符串转换为ListMap集合是非常常见的操作,而下面的代码将介绍如何实现该操作。
/** * 字符串转ListMap * @param jsonStr Json字符串 * @return ListMap集合 */ public static List<Map<String,Object>> jsonToListMap(String jsonStr) { List<Map<String,Object>> list = new ArrayList<>(); // 判断字符串是否为空 if (jsonStr == null || jsonStr.trim().length() <= 0) { return list; } // 将字符串转换为JSONArray对象 JSONArray jsonArray = JSONArray.parseArray(jsonStr); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); Map<String,Object> map = new HashMap<>(); Set<String> set = jsonObject.keySet(); for (String key : set) { Object value = jsonObject.get(key); // 如果值是JSONObject类型,则递归解析 if (value instanceof JSONObject) { map.put(key,jsonToMap(value.toString())); } else if (value instanceof JSONArray) { map.put(key,jsonToList(value.toString())); } else { map.put(key,value); } } list.add(map); } return list; }
上述代码中,我们首先定义了一个jsonToListMap函数来实现Json字符串转ListMap的功能。函数的第一个参数是Json字符串,它返回一个ListMap集合。
接下来,我们判断了字符串是否为空。如果为空或空格,则函数直接返回空的ListMap集合。
然后,我们使用JSONArray类将Json字符串转换为JSONArray对象。这是因为一个Json字符串可以表示一个Json对象,也可以表示一个Json数组。而ListMap集合是由多个Map集合组成的,因此我们需要使用JSONArray类来处理Json数组。
接着,我们使用循环遍历JSONArray对象中的每个JsonObject对象。对于每个JsonObject对象,我们都创建一个Map集合。然后,我们使用keySet方法获取JsonObject对象中所有的键值,再根据键值获取对应的值。如果值是JSONObject类型,则使用递归方式解析;如果值是JSONArray类型,则使用List集合来保存解析结果;否则,直接将值放入Map集合。
最后,我们把每个Map集合添加到ListMap集合中,并返回该ListMap集合。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。