Сторона сервера возвращает строку, представляющую следующий объект:
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");