您好,欢迎访问一九零五行业门户网

如何在Java中实现HashMap与String字符串之间的转换?

背景:当我们有需求将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"}
再往下执行,通过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字符串之间的转换?的详细内容。
其它类似信息

推荐信息