Символ \
является escape-символом для JavaScript и JSON.
Когда анализатор JavaScript анализирует строковый литерал, он превращает \"
в исходном коде JavaScript в "
в строке.
Когда анализатор JSON анализирует строку, он обнаруживает неэкранированные "
и ошибки.
Чтобы включить \"
в данные JSON, необходимо экранировать\
в строковом литерале JavaScript: \\"
.
var jsobj = JSON.parse('{"lineID":11,"siteID":3,"mystring":"this is a \\"Test\\" string with quotes"}');
console.log(jsobj);
Вложенные форматы данных - это всегда боль.Лучше всего избегать этого, когда это возможно.
Нет смысла в начале иметь строковый литерал, содержащий JSON в JavaScript.
JSON - это подмножество JavaScript.Просто используйте JSON как литерал JavaScript.
var jsobj = {
"lineID": 11,
"siteID": 3,
"mystring": "this is a \"Test\" string with quotes"
};
console.log(jsobj);