当我们有需求将hashmap转为json格式的string时,切记不要使用hashmap的tostring()方法,需要使用fastjson/gson将hashmap转为string。如果使用tostring()方法进行转换时,是无法将字符串再转为hashmap的。它只会出现序列化报错:

demo代码:
HashMap<String, String> dataMap = new HashMap<>(4);
dataMap.put("key1", "value1");
dataMap.put("key2", "value2");
dataMap.put("key3", "value3");
dataMap.put("key4", "value4");
String byToString = dataMap.toString();
String byJSONString = JSON.toJSONString(dataMap);
System.out.println(byToString);
System.out.println(byJSONString);
HashMap<String ,String> hashMap = JSON.parseObject(byJSONString, HashMap.class);
HashMap<String ,String> hashMap2 = JSON.parseObject(byToString, HashMap.class);log:
{key1=value1, key2=value2, key3=value3, key4=value4}
{"key1":"value1","key2":"value2","key3":"value3","key4":"value4"}
立即学习“Java免费学习笔记(深入)”;
再往下执行,通过Debug可见:

通过FastJson转换成String的方式可以再将String转为HashMap,但是通过toString转换会报错序列化问题。
HashMap toString源码:

HashMap重写了基类的toString方法,原理是通过for循环的方式将key与value之间用=连接后输出,显然这样并不是一个Json串的格式。
JSON.toJSONString(Object object)源码:

FastJson通过toJSONString方法可以将Object对象转为Json格式的字符串,反之,可以通过序列化/反序列化的方式将Json字符串转化为原对象。
以上就是如何在Java中实现HashMap与String字符串之间的转换?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号