ホームページ  >  記事  >  Java  >  JavaでHashMapとStringの間で変換するにはどうすればよいですか?

JavaでHashMapとStringの間で変換するにはどうすればよいですか?

王林
王林転載
2023-04-21 12:52:172937ブラウズ

背景:

HashMap を Json 形式の String に変換する必要がある場合は、HashMap の toString() メソッドを使用しないでください。HashMap を String に変換するには、FastJson/Gson を使用する必要があります。変換に toString() メソッドを使用する場合、文字列を HashMap に変換することはできません。シリアル化エラーのみが発生します:

JavaでHashMapとStringの間で変換するにはどうすればよいですか?

デモ コード:

        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の間で変換するにはどうすればよいですか?

さらなる実行、デバッグで表示:

JavaでHashMapとStringの間で変換するにはどうすればよいですか?

FastJson を String に変換することで String を HashMap に変換しますが、toString に変換するとシリアル化エラーが報告されます。

理由:

HashMap toString ソース コード:

JavaでHashMapとStringの間で変換するにはどうすればよいですか?

HashMap は、基本クラスの toString メソッドをオーバーライドします。ループ。キーと値を = で接続して出力します。明らかに、これは Json 文字列形式ではありません。

JSON.toJSONString(Object object) ソース コード:

JavaでHashMapとStringの間で変換するにはどうすればよいですか?

FastJson は、toJSONString メソッドを通じて Object オブジェクトを Json 形式の文字列に変換でき、またその逆も可能です。逆に、Json 文字列を元のオブジェクトに変換するシリアル化/逆シリアル化メソッドを使用することもできます。

以上がJavaでHashMapとStringの間で変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。