Скажем, у меня есть довольно простой метод, как показано ниже:Как передать строку JSON в качестве аргумента?
var foo = function (str) {
console.log(str); //{"Field Name": "Value With "Escaped" Content"}
JSON.parse(str); //fails
}
foo('{"Field Name": "Value With \"Escaped\" Content"}');
Передаваемый аргумент особенность преднамеренного слэша (строка от третьей стороны), однако, они отсутствуют, как только строка передаются в (см. встроенные комментарии).
Могу ли я избежать проблемы без ручного двойного экранирования строки? Почему не позволяет использовать одиночные слэши вокруг самой строки, чтобы избежать этой проблемы? Возможно ли получить исходную строку ввода?
вы убегаете '" ', потому что в этом контексте вы объявляете строку (кстати бесполезную, потому что в окружении простых кавычек), вы не создайте избежали двойных кавычек – Hacketo
возможного дубликата [Получить обратный слэши внутри строки - JavaScript] (HTTP: //stackoverflow.com/questions/10041998/get-backslashes-inside-a-string-javascript) – Hacketo
Вы копируете и вставляете этот JSON в свой исходный код для тестирования, но на практике строка будет поступать из некоторого API? Тогда у вас даже не будет этой проблемы на практике! В противном случае уточните, откуда взялась эта строка и что вы с ней делаете. – deceze