一、Map转String字符串互相转换
在Java开发中,我们经常需要将Map转换为String字符串,或者将String字符串转换为Map。下面我们将分别介绍如何实现这两种转换。
1、Map转String字符串:
Map<String, Object> map = new HashMap<>(); map.put("name", "张三"); map.put("age", 18); String mapStr = ""; if (!map.isEmpty()) { StringBuilder stringBuilder = new StringBuilder(); for (Map.Entry<String, Object> entry : map.entrySet()) { stringBuilder.append(entry.getKey()) .append("=") .append(entry.getValue()) .append("&"); } mapStr = stringBuilder.toString(); mapStr = mapStr.substring(0, mapStr.length() - 1); }
2、String字符串转Map:
String mapStr = "name=张三&age=18"; Map<String, Object> map = new HashMap<>(); if (!mapStr.isEmpty()) { String[] split = mapStr.split("&"); for (String keyValue : split) { String[] entry = keyValue.split("="); if (entry.length > 1) { map.put(entry[0], entry[1]); } else { map.put(entry[0], ""); } } }
二、List转String字符串
有时候我们需要将List转换为String字符串,下面是实现该功能的代码:
List<String> list = new ArrayList<>(); list.add("张三"); list.add("李四"); StringBuilder stringBuilder = new StringBuilder(); for (String s : list) { stringBuilder.append(s).append(","); } String listStr = stringBuilder.toString(); listStr = listStr.substring(0, listStr.length() - 1);
三、字符串String转Map
有时候我们需要将String字符串转换为Map类型,下面是实现该功能的代码:
String mapStr = "{'name':'张三','age':18}"; mapStr = mapStr.replace("{", "") .replace("}", "") .replace("'", ""); Map<String, Object> map = new HashMap<>(); if (!mapStr.isEmpty()) { String[] split = mapStr.split(","); for (String keyValue : split) { String[] entry = keyValue.split(":"); if (entry.length > 1) { map.put(entry[0], entry[1]); } else { map.put(entry[0], ""); } } }
四、String类型如何转成Map
String类型转Map的方式有多种,其中一种是使用第三方库。下面是将json字符串转换为Map类型的代码实现:
String jsonStr = "{'name':'张三','age':18}"; Gson gson = new Gson(); Map<String, Object> map = gson.fromJson(jsonStr, new TypeToken<Map<String, Object>>() { }.getType());
五、String转Map集合
我们可以将字符串中的数据解析到多个Map中,即将Map合并,下面是实现该功能的代码:
String listMapStr = "[{'name':'张三','age':18},{'name':'李四','age':19}]"; List<Map<String, Object>> listMap = new ArrayList<>(); listMapStr = listMapStr.replace("[", "") .replace("]", ""); if (!listMapStr.isEmpty()) { String[] split = listMapStr.split("\\},\\{"); for (String s : split) { Map<String, Object> map = new HashMap<>(); s = s.replace("{", "") .replace("}", "") .replace("'", ""); String[] keyValue = s.split(","); for (String entry : keyValue) { String[] splitEntry = entry.split(":"); if (splitEntry.length > 1) { map.put(splitEntry[0], splitEntry[1]); } else { map.put(splitEntry[0], ""); } } listMap.add(map); } }
六、String转换为Map
下面是另一种将json字符串转换为Map类型的代码实现:
String jsonStr = "{'name':'张三','age':18}"; Map<String, Object> map = new HashMap<>(); JsonParser parser = new JsonParser(); JsonObject jsonObject = parser.parse(jsonStr).getAsJsonObject(); Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet(); for (Map.Entry<String, JsonElement> entry : entrySet) { String key = entry.getKey(); Object value = entry.getValue(); if (value instanceof JsonPrimitive) { map.put(key, ((JsonPrimitive) value).getAsString()); } else if (value instanceof JsonNull) { map.put(key, ""); } else { map.put(key, value); } }
七、Map转换为JSON字符串
通过以下代码,我们能够将Map转换为JSON字符串:
Map<String, Object> map = new HashMap<>(); map.put("name", "张三"); map.put("age", 18); Gson gson = new Gson(); String jsonStr = gson.toJson(map);
八、String转JSON字符串
下面是将字符串转换为JSON字符串的代码实现:
String str = "张三"; JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("name", str); Gson gson = new Gson(); String jsonStr = gson.toJson(jsonObject);