Проблема с двойными кавычками в Java Scriptlet - PullRequest
0 голосов
/ 19 ноября 2018

Сторона сервера возвращает строку, представляющую следующий объект:

value = {"attrName": "attrValue is \"some value\""};

Клиентская сторона / JSP:

Дело 1:

JSON.parse('<%= value %>');

Дело 2:

JSON.parse("<%= value %>");

В case 1 Произошла ошибка синтаксического анализа JSON, поскольку при вставке value JavaScript выглядит как JSON.parse('{"attrName": "attrValue is "some value""}'); - JSON полностью недействителен.

В case 2 синтаксическая ошибка генерируется, потому что JavaScript выглядит как JSON.parse("{"attrName": "attrValue is \"some value\""}"); - JSON.parse("{"a все портит.

Проблема: ищет объяснение, почему строки вставляются таким образом и для возможного глобального решения (когда изменения кода не нужны для всех случаев JSON.parse в коде)

Обновление 1 :

Файл Java, сгенерированный из случая 1 JSP:

out.write("\r\nsomeStringsJSON.parse('");
out.print(value);
out.write('" ));\r\nsomeMoreStrings");

Файл Java, сгенерированный из случая 2 JSP:

out.write("\r\nsomeStringsJSON.parse(");
out.print(value);
out.write(" ));\r\nsomeMoreStrings");
...