Подтвердить что ты не робот

Вопрос 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());

Точный выход {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);

Неточно Вывод Json result is "{test\u003dm\\/m\\/m/m/m/m/m}"

Является ли GSON безумным или это то, что я делаю неправильно? Что происходит с Back Slashes и откуда появляется этот u003d? Я знал, что существует такая ошибка давно, но она была решена. Как я могу решить эту проблему? Спасибо заранее.

4b9b3361

Ответ 1

Знак = закодирован до \u003d. Следовательно, вам нужно использовать disableHtmlEscaping().

Вы можете использовать

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

Для \/ обращения в \\/ проблема, решение

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