一、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);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/271358.html