一、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-hant/n/271358.html
微信掃一掃
支付寶掃一掃