中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決Java中HashMap與String字符串互轉的問題

發布時間:2022-03-23 14:04:42 來源:億速云 閱讀:500 作者:小新 欄目:開發技術

小編給大家分享一下如何解決Java中HashMap與String字符串互轉的問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

背景:

當我們有需求將HashMap轉為Json格式的String時,切記不要使用HashMap的toString()方法,需要使用FastJson/Gson將HashMap轉為String。如果使用toString()方法進行轉換時,是無法將字符串再轉為HashMap的。它只會出現序列化報錯:

如何解決Java中HashMap與String字符串互轉的問題

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中HashMap與String字符串互轉的問題

再往下執行,通過Debug可見:

如何解決Java中HashMap與String字符串互轉的問題

通過FastJson轉換成String的方式可以再將String轉為HashMap,但是通過toString轉換會報錯序列化問題。

原因:

HashMap toString源碼:

如何解決Java中HashMap與String字符串互轉的問題

HashMap重寫了基類的toString方法,原理是通過for循環的方式將key與value之間用=連接后輸出,顯然這樣并不是一個Json串的格式。

JSON.toJSONString(Object object)源碼:

如何解決Java中HashMap與String字符串互轉的問題

FastJson通過toJSONString方法可以將Object對象轉為Json格式的字符串,反之,可以通過序列化/反序列化的方式將Json字符串轉化為原對象。

看完了這篇文章,相信你對“如何解決Java中HashMap與String字符串互轉的問題”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林芝县| 宁国市| 左权县| 吐鲁番市| 西乡县| 大足县| 安宁市| 莒南县| 孝义市| 东源县| 兴安盟| 永年县| 灵山县| 皋兰县| 巴中市| 泾阳县| 平潭县| 河池市| 衡阳市| 丰顺县| 炎陵县| 湛江市| 公安县| 惠安县| 闽侯县| 河北区| 汉中市| 枝江市| 临安市| 察雅县| 夏津县| 汽车| 贺州市| 泰州市| 嘉峪关市| 三亚市| 乡宁县| 安顺市| 宣化县| 柳江县| 安康市|