swagger2 libreria library example java gson linkedhashmap

java - libreria - Problema de GSON con String



swagger gradle spring boot (2)

String s = "m//"+"/m///m/m/m/m/m"; LinkedHashMap<String, String> hm = new LinkedHashMap<>(); hm.put("test", s); System.out.println(hm+" Hash map = "+hm.toString());

La salida fina es {test=m//m//m/m/m/m/m} Hash map = {test=m//m//m/m/m/m/m}

String s2 = new Gson().toJson(hm.toString()); System.out.println("Json result is "+s2);

La salida no fina es Json result is "{test/u003dm///m///m/m/m/m/m}"

¿ Se está volviendo loco GSON o es algo que estoy haciendo mal? ¿Qué sucede con las u003d hacia atrás y desde dónde aparece este u003d ? Sabía que existe un error de esta naturaleza hace mucho tiempo pero se resolvió. ¿Cómo puedo resolver este problema? Gracias por adelantado.


El signo = está codificado en /u003d. Por lo tanto, debe utilizar disableHtmlEscaping() .

Puedes usar

Gson gson = new GsonBuilder().disableHtmlEscaping().create(); String s2 = gson.toJson(hm.toString());

Para // convirtiéndose en /// problema, la solución es

s2.replace("////", "//");


Ya que a algunas personas les gusta hacer nitpick, agregaré la respuesta a la pregunta (aunque ya fue respondida y elegida como la respuesta correcta) ...

Estoy de acuerdo con la respuesta elegida a esta pregunta, use el siguiente código:

Gson gson = new GsonBuilder().disableHtmlEscaping().create(); String s2 = gson.toJson(hm.toString()); s2.replace("////", "//");

@Bajrang Hudda ha preguntado acerca de / n ... Me topé con este problema recientemente ... Pude resolverlo usando:

Gson gson = new Gson(); String json = (gson.toJson(data)).replaceAll("////n", "//n");