Удаление обратных косых черт из Json Data в JavaScript
Удаление обратных косых черт из данных JSON в JavaScript или jQuery
var str = "{"data":"{\n \"taskNames\" : [\n \"01 Jan\",\n \"02 Jan\",\n \"03 Jan\",\n \"04 Jan\",\n \"05 Jan\",\n \"06 Jan\",\n \"07 Jan\",\n \"08 Jan\",\n \"09 Jan\",\n \"10 Jan\",\n \"11 Jan\",\n \"12 Jan\",\n \"13 Jan\",\n \"14 Jan\",\n \"15 Jan\",\n \"16 Jan\",\n \"17 Jan\",\n \"18 Jan\",\n \"19 Jan\",\n \"20 Jan\",\n \"21 Jan\",\n \"22 Jan\",\n \"23 Jan\",\n \"24 Jan\",\n \"25 Jan\",\n \"26 Jan\",\n \"27 Jan\"]}
var finalData = str.replace("\\", "");
но это не работает для меня. Любая помощь?
Ответы
Ответ 1
Ваша строка недействительна, но если предположить, что она действительна, вам нужно будет:
var finalData = str.replace(/\\/g, "");
Если вы хотите заменить все вхождения на .replace
, первым параметром должно быть регулярное выражение, если вы .replace
строку, будет заменено только первое вхождение, поэтому ваша замена не будет работать.
ура
Ответ 2
tl; dr: Вам не нужно удалять косые черты, у вас есть вложенный JSON и, следовательно, нужно дважды декодировать JSON: DEMO (обратите внимание, что в примере я использовал двойные слэши, потому что JSON находится в строковом литерале JS).
Я предполагаю, что ваш фактический JSON выглядит
{"data":"{\n \"taskNames\" : [\n \"01 Jan\",\n \"02 Jan\",\n \"03 Jan\",\n \"04 Jan\",\n \"05 Jan\",\n \"06 Jan\",\n \"07 Jan\",\n \"08 Jan\",\n \"09 Jan\",\n \"10 Jan\",\n \"11 Jan\",\n \"12 Jan\",\n \"13 Jan\",\n \"14 Jan\",\n \"15 Jan\",\n \"16 Jan\",\n \"17 Jan\",\n \"18 Jan\",\n \"19 Jan\",\n \"20 Jan\",\n \"21 Jan\",\n \"22 Jan\",\n \"23 Jan\",\n \"24 Jan\",\n \"25 Jan\",\n \"26 Jan\",\n \"27 Jan\"]}"}
Т.е. у вас есть объект верхнего уровня с одним ключом, data
. Значение этого ключа - это строка, содержащая сам JSON. Обычно это происходит потому, что код на стороне сервера неправильно создал JSON. Вот почему вы видите \"
внутри строки". Это позволяет синтаксическому анализатору знать, что "
нужно обрабатывать буквально и не прерывать строку.
Таким образом, вы можете исправить код на стороне сервера, чтобы вы не дважды закодировали данные, или вам нужно дважды декодировать JSON, например
var data = JSON.parse(JSON.parse(json).data));
Ответ 3
попробуй это
var finalData = str.replace(/\\/g, '');