Lorsque nous devons convertir HashMap en String au format Json, n'oubliez pas de ne pas utiliser la méthode toString() de HashMap. Vous devez utiliser FastJson/Gson pour convertir HashMap en String. Si vous utilisez la méthode toString() pour la conversion, vous ne pouvez pas convertir la chaîne en HashMap. Il affichera uniquement une erreur de sérialisation :
code démo :
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"}
Autre exécution, visible via Debug :
peut être converti en chaîne via FastJson Convert String to HashMap , mais une erreur de sérialisation sera signalée via la conversion toString.
Code source de HashMap toString :
HashMap réécrit la méthode toString de la classe de base. Le principe est de connecter la clé et la valeur avec = via une boucle for et de la sortir. Format de chaîne Json.
Code source JSON.toJSONString (objet Object) :
FastJson peut convertir des objets Object en chaînes au format Json via la méthode toJSONString Au contraire, les chaînes Json peuvent être converties en chaînes JSON via la sérialisation/désérialisation de l'objet original. .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!