这篇文章主要介绍“Java中怎么实现HashMap与String字符串转换”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java中怎么实现HashMap与String字符串转换”文章能帮助大家解决问题。
创新互联专业为企业提供安图网站建设、安图做网站、安图网站设计、安图网站制作等企业网站建设、网页设计与制作、安图企业网站模板建站服务,十余年安图做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
背景:
当我们有需求将HashMap转为Json格式的String时,切记不要使用HashMap的toString()方法,需要使用FastJson/Gson将HashMap转为String。如果使用toString()方法进行转换时,是无法将字符串再转为HashMap的。它只会出现序列化报错:
demo代码:
HashMapdataMap = 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 hashMap = JSON.parseObject(byJSONString, HashMap.class); HashMap hashMap2 = JSON.parseObject(byToString, HashMap.class);
log:
{key1=value1, key2=value2, key3=value3, key4=value4} {"key1":"value1","key2":"value2","key3":"value3","key4":"value4"}
再往下执行,通过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字符串转换”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注创新互联行业资讯频道,小编每天都会为大家更新不同的知识点。
网页标题:Java中怎么实现HashMap与String字符串转换
文章来源:http://lswzjz.com/article/ggoids.html