HashMap を Json 形式の String に変換する必要がある場合は、HashMap の toString() メソッドを使用しないでください。HashMap を String に変換するには、FastJson/Gson を使用する必要があります。変換に toString() メソッドを使用する場合、文字列を HashMap に変換することはできません。シリアル化エラーのみが発生します:
デモ コード:
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"}
さらなる実行、デバッグで表示:
FastJson を String に変換することで String を HashMap に変換しますが、toString に変換するとシリアル化エラーが報告されます。
HashMap toString ソース コード:
HashMap は、基本クラスの toString メソッドをオーバーライドします。ループ。キーと値を = で接続して出力します。明らかに、これは Json 文字列形式ではありません。
JSON.toJSONString(Object object) ソース コード:
FastJson は、toJSONString メソッドを通じて Object オブジェクトを Json 形式の文字列に変換でき、またその逆も可能です。逆に、Json 文字列を元のオブジェクトに変換するシリアル化/逆シリアル化メソッドを使用することもできます。
以上がJavaでHashMapとStringの間で変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。