带有String的GSON问题

Fah*_*que 32 java linkedhashmap gson

    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());
Run Code Online (Sandbox Code Playgroud)

精细输出是 {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);
Run Code Online (Sandbox Code Playgroud)

输出不好Json result is "{test\u003dm\\/m\\/m/m/m/m/m}"

GSON要疯了还是我做错了什么吗?反斜杠发生了什么,从哪里u003d出现?我知道很久以前就存在这种性质的错误,但它已经解决了.我该如何解决这个问题?提前致谢.

NIN*_*OOP 81

=对符号进行编码\u003d..因此你需要使用disableHtmlEscaping() .

您可以使用

Gson gson = new GsonBuilder().disableHtmlEscaping().create();
String s2 = gson.toJson(hm.toString());
Run Code Online (Sandbox Code Playgroud)

对于\/变成\\/问题,解决的办法是

s2.replace("\\\\", "\\");
Run Code Online (Sandbox Code Playgroud)