一、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/n/271358.html
微信扫一扫
支付宝扫一扫