Apabila kita perlu menukar HashMap kepada String dalam format Json, ingat untuk tidak menggunakan kaedah toString() HashMap Anda perlu menggunakan FastJson/Gson untuk menukar HashMap kepada String. Jika anda menggunakan kaedah toString() untuk penukaran, anda tidak boleh menukar rentetan menjadi HashMap. Ia hanya akan menyebabkan ralat bersiri:
kod 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"}
Laksanakan lebih lanjut, dan anda boleh melihatnya melalui Nyahpepijat:
Tukar String kepada HashMap dengan menukar FastJson kepada String, tetapi ralat akan dilaporkan melalui penukaran toString. Isu bersiri.
Kod sumber HashMap toString:
HashMap mengatasi kaedah toString kelas asas Prinsipnya adalah melalui for gelung. Kunci sambung dan nilai dengan = dan output Jelas sekali ini bukan format rentetan Json.
Kod sumber JSON.toJSONString (objek objek):
FastJson boleh menukar objek Objek kepada rentetan format Json melalui kaedah toJSONString, dan sebaliknya , anda boleh menggunakan kaedah Serialisasi/deserialisasi menukar rentetan Json kepada objek asal.
Atas ialah kandungan terperinci Bagaimana untuk menukar antara HashMap dan String di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!