Java экранирует кавычки в строках JSON - PullRequest
0 голосов
/ 09 мая 2018

У меня есть строка JSON, сохраненная в БД (в столбце типа Текст ), которую я хотел бы, чтобы клиенты сервера могли получать через API REST.

Проблема заключается в том, что как только строка JSON извлекается бэкэндом и сохраняется в объекте String , готовом для возврата клиенту в качестве части тела ответа, Java автоматически экранирует кавычки.

Таким образом, строка JSON сохранилась как:

{"key1": "value1", "key2": "value2"}

Будет извлечено и сохранено в строковом объекте как:

{\"key1\": \"value1\", \"key2\": \"value2\"}

Тогда эта экранированная строка будет возвращена клиенту. Меня беспокоит то, что в таком формате он не будет использоваться клиентом.

Я видел некоторых людей, использующих регулярные выражения для удаления обратной косой черты, но я не уверен, насколько это возможно в качестве решения.

Есть предложения?

1 Ответ

0 голосов
/ 09 мая 2018

Вы можете использовать org.apache.commons.text.StringEscapeUtils класс для этого. Пожалуйста, обратитесь ниже код

String s = "{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\"}";
s = StringEscapeUtils.unescapeJava(s);
System.out.println(s);

дает

{"key1": "value1", "key2": "value2"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...