您好,登錄后才能下訂單哦!
小編給大家分享一下如何解決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字符串互轉的問題”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。