【java|将String类型转换成Map数据类型】今天工作中遇到一个问题,有一些Map < String, Object >类型的数据我需要放到redis中,但是从redis中取出来的又是String类型 需要转Map。想了想 只记得 Map.toString()这样可以将Map转换到String。不记得怎么String转map
也试了试Map自带的方法中好像也没有 String 转 Map的
就在网上找了个方法:
public static Map getValue(String param) {
Map map = new HashMap<>();
String str = "";
String key = "";
Object valuehttps://www.it610.com/article/= "";
char[] charList = param.toCharArray();
boolean valueBegin = false;
for (int i = 0;
i < charList.length;
i++) {
char c = charList[i];
if (c == '{') {
if (valueBegin == true) {
value = https://www.it610.com/article/getValue(param.substring(i, param.length()));
i = param.indexOf('}', i) + 1;
map.put(key, value);
}
} else if (c == '=') {
valueBegin = true;
key = str;
str = "";
} else if (c == ',') {
valueBegin = false;
value = https://www.it610.com/article/str;
str ="";
map.put(key, value);
} else if (c == '}') {
if (str != "") {
value = https://www.it610.com/article/str;
}
map.put(key, value);
return map;
} else if (c !=' ') {
str += c;
}
}
return map;
}
然后写了个方法 简单测试一下:
public static void main(String[] args) {
Map map = new HashMap();
map.put("aaa", 11);
map.put("bbb", 22);
map.put("ccc", 33);
map.put("ddd", 44);
String string = map.toString();
System.out.println("map转String"+string);
//Map stringToMap = getStringToMap(string);
Map stringToMap = getValue(string);
for(Object a : stringToMap.keySet()) {
System.out.println(stringToMap.get(a).toString());
}
}
运行结果:
文章图片
需要注意的是 value 值中 不能带 逗号(,)
推荐阅读
- 面试|MySQL 免安装版的下载与配置教程
- 面试|MySQL 入门(Case 语句很好用)
- 面试|MySQL 出现 The table is full 的解决方法
- java|如何在Java中将字符串转换为数组
- java|什么是 Apache Shiro
- java|Mysql环境变量配置
- JAVA|MultipartFile文件上传
- 面试|MySQL之创建表的基本操作
- java项目工具|oss与文件上传组件MultipartFile