Как избежать двойных кавычек в JSON
Я пытаюсь показать двойные кавычки, но он показывает одну из обратных косых черт:
"maingame": { "day1": { "text1": "Tag 1", "text2": "Heute startet unsere Rundreise \\\"Example text\\\". Jeden Tag wird ein neues Reiseziel angesteuert bis wir. " } }
При рендеринге в html он отображается как \"Example text\"
. Каков правильный путь?
- Создать Java-class из JSON?
- Передайте массив в ajax-запрос в $ .ajax ()
- «JSON» - неопределенная ошибка только в IE
- Получить параметр, отправленный через jquery ajax в Java Servlet
- Есть ли язык запросов для JSON?
- Как разбирать строку json в Android?
- Преобразование JSONArray в String Array
- Parse JSON Array без ключа в Android
- JSON.net сериализуется непосредственно из oledbconnection
- Обработка запроса JSON в Google
- Как добавить элементы в неупорядоченный список с помощью jquery
- Как разобрать stream ввода JSON
- Преобразование JSON в XLS / CSV в Java
Попробуй это:
"maingame": { "day1": { "text1": "Tag 1", "text2": "Heute startet unsere Rundreise \" Example text\". Jeden Tag wird ein neues Reiseziel angesteuert bis wir. " } }
(только одна обратная косая черта ( \
) перед кавычками).
Он показывает обратную косую черту, потому что вы также избегаете обратной косой черты.
Помимо двойных кавычек вы также должны избегать обратных косых черт, если вы хотите включить их в строку, указанную в JSON. Однако, если вы намерены использовать обратную косую черту в escape-последовательности, очевидно, вы не должны ее избегать.
Когда и где использовать \\\"
вместо этого. ОК, если вы похожи на меня, вы будете чувствовать себя так же глупо, как я, когда я понял, что я делаю после того, как нашел эту тему.
Если вы создаете текстовый файл / stream .json и импортируете данные оттуда, тогда ответ основного streamа всего одного обратного слэша перед двойными кавычками: \"
это тот, который вы ищете.
Однако, если вы похожи на меня, и вы пытаетесь заставить w3schools.com «Tryit Editor» иметь двойные кавычки в выходе JSON.parse (текст), то тот, который вы ищете, является тройным обратная косая черта с двойными кавычками \\\"
. Это связано с тем, что вы создаете свою текстовую строку в блоке HTML , а первая двойная обратная косая черта вставляет одиночную обратную косую черту в строковую переменную, тогда следующая двойная кавычка обратной косы вставляет двойную кавычку в строка, так что результирующая строка скрипта содержит
\"
стандартный ответ», а парсер JSON будет анализировать это как двойные кавычки.
+1: поскольку это текстовая строка JavaScript, двойная кавычка с двойным обратным слэшем \\"
тоже будет работать, потому что двойная кавычка не нуждается в экранировании в одной кавычной строке, например, '\"'
и '"'
приводит к той же строке JS ,
Обратите внимание, что это чаще всего происходит, когда контент был «двойным», что означает, что алгоритм кодирования случайно вызван дважды.
Первый вызов будет кодировать значение «text2»:
FROM: Heute startet unsere Rundreise «Пример текста». Jeden Tag wird ein neues Reiseziel angesteuert bis wir.
TO: Heute startet unsere Rundreise \ “Пример текста \”. Jeden Tag wird ein neues Reiseziel angesteuert bis wir.
Второе кодирование затем преобразует его снова, избегая уже экранированных символов:
FROM: Heute startet unsere Rundreise \ “Пример текста \”. Jeden Tag wird ein neues Reiseziel angesteuert bis wir.
TO: Heute startet unsere Rundreise \\\ “Пример текста \\\”. Jeden Tag wird ein neues Reiseziel angesteuert bis wir.
Итак, если вы несете ответственность за реализацию сервера здесь, проверьте, чтобы не было двух шагов, пытающихся закодировать один и тот же контент.
Чтобы избежать обратных косых черт, вызывающих проблемы с данными JSON, я использую эту функцию.
//escape backslash to avoid errors var escapeJSON = function(str) { return str.replace(/\\/g,'\\'); };
если вы хотите избежать двойной кавычки в JSON, используйте \\, чтобы избежать ее.
Например, если вы хотите создать json следующего объекта javascript
{time: '7 "o" clock'}
то вы должны написать следующим образом
'{"time":"7 \\"o\\" clock"}'
если мы проанализируем его с помощью JSON.parse()
JSON.parse('{"time":"7 \\"o\\" clock"}')
результат будет
{time: "7 "o" clock"}