Как в json передать кавычки
Перейти к содержимому

Как в json передать кавычки

  • автор:

Как в json передать кавычки

При записи строки с кавычкой в JSON получаю лишний символ (обратный слеш).

ЗаписьJSON = Новый ЗаписьJSON();
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, «__»»__»);
СтрокаJSON = ЗаписьJSON.Закрыть();

возвращает «__\»__»
При обратном преобразовании символ сохраняется.
Что-то лыжи не едут. Гугл молчит. Баг?

ПараметрыЗаписиJSON (JSONWriterSettings)
ЭкранированиеСимволов (EscapeCharacters)
Использование:
Только чтение.
Описание:
Тип: ЭкранированиеСимволовJSON.
Определяет способ экранирования символов при записи документа JSON.
После создания объекта данное свойство имеет значение Нет.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.6.
Методическая информация

ЭкранированиеСимволов тут каким боком?
доступные значения: Нет, СимволыВнеASCII, СимволыВнеBMP. По умолчанию: Нет.

Перебрал все возможные значения — результат тот же.

Конструктор по умолчанию устанавливает:
ЗаписьJSON.Параметры.ИспользоватьДвойныеКавычки — истина
ЗаписьJSON.Параметры.ЭкранироватьОдинарныеКавычки — ложь

JS: Двойные кавычки в JSON

Некий сайт при отправке XMLHttpRequest не возвращает responseJSON, а responseText такой вот:

Как видите, проблема в кавычках. Само собой JSON.parse не работает.

javascript меня удивил

var j = ''; var k = ''; console.log((j == k)); --> true 

Нас невозможно сбить с пути, нам пофигу куда идти.

2 Ответ от teadrinker 2019-11-01 19:35:25

  • teadrinker
  • Администратор
  • Неактивен

Re: JS: Двойные кавычки в JSON

Замените одинарный обратный слеш на двойной.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 Ответ от DnsIs 2019-11-01 19:47:46

Re: JS: Двойные кавычки в JSON

Совет отличный. НО! Я не знаю как.

 [1] s = ''; [2] s = s.replace . [3] json = JSON.parse(s); [4] console.log(json.name)

Не могу справиться со второй строкой.

Нас невозможно сбить с пути, нам пофигу куда идти.

4 Ответ от teadrinker 2019-11-01 20:51:22 (изменено: teadrinker, 2019-11-01 20:53:24)

  • teadrinker
  • Администратор
  • Неактивен

Re: JS: Двойные кавычки в JSON

Если текст буквально такой , проблем с JSON.parse быть не должно.
При записи в коде он должен выглядеть с двойным обратным слешем.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

Сообщения 4

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Как в json передать кавычки

Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014

Помог: 0 раз(а)

Здравствуйте!
Вот как получилось, игрался с JSON.
И вот нашёл строку JSON

Но ничего не могу с ней сделать.
Ибо апостроф и всё. Любая функция пишет.
Parse error: syntax error, unexpected ‘skoye’
Как то раньше я через addslashes() и всё нормально, а тут вдруг не.
Как быть?
П.С. Подумал и понял, что даже через регулярку это не исправить.
А там строка много тысяч символов…

Отправлено: 28 Декабря, 2018 — 09:23:35

Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009
Откуда: Россия, Санкт-Петербург

Помог: 617 раз(а)

Поясните в чём вы видите проблему и что тут надо исправлять.
Если закрыть < добавив в конец >, то будет синтаксически корректный JSON, успешно разбирается в том числе PHP

Отправлено: 28 Декабря, 2018 — 20:37:10

Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014

Помог: 0 раз(а)

Я сам в, не понятках. НО!
Да фигурная скобка, не аккуратно отрезал.
Из за этого апострофа, не удаётся мне работать с этим JSON.
Nikol’skoye
Может я что то ни так пишу. Вот что я пишу.
$stroka = addslashes(‘>’);
И вот что имею.
Parse error: syntax error, unexpected ‘skoye’ (T_STRING) in…

Отправлено: 29 Декабря, 2018 — 09:24:03

Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009
Откуда: Россия, Санкт-Петербург

Помог: 617 раз(а)

Так и задавайте вопрос не про вообще не к месту упомянутый JSON, а про синтаксис строковых литералов PHP.
Синтаксис строк вполне описан в мануале: http://php.net/manual/en/languag. types.string.php
Запишите нужные для переменной данные синтаксически корректно. Ну или читайте из файла либо ещё откуда извне текста скрипта.

Отправлено: 29 Декабря, 2018 — 10:26:18

Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014

Помог: 0 раз(а)

Спасибо за ответ.
Почитаем. Разберёмся.
Отправлено: 29 Декабря, 2018 — 19:18:26

Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010

Помог: 322 раз(а)

Если коротко надо экранировать кавычки
Php считает что строка закрыта
\’
Я понимаю мелкого
Если уже с json работаешь и не знаешь азов.
Удачи)
(Добавление)
Хотя понял что именно пытаешься экранировать
Но неправильно
В addslashes надо передать переменную
И он обработает ее
Литерал(строку) нет смысла
Потому как ее цель именно сделать строку приемлимой для восприятия пыхом

Как FOR JSON экранирует специальные и управляющие символы (SQL Server)

В этой статье описывается, как FOR JSON предложение инструкции SQL Server SELECT экранирует специальные символы и представляет символы управления в выходных данных JSON.

В этой статье описывается встроенная поддержка JSON в Microsoft SQL Server. Общие сведения о экранировании и кодировке в ФОРМАТЕ JSON см. в разделе 2.5 RFC JSON.

Экранирование специальных символов

Если исходные данные содержат специальные символы, FOR JSON предложение экранирует их в выходных данных JSON, \ как показано в следующей таблице. Такое экранирование происходит как в именах свойств, так и в их значениях.

Специальный знак Экранированные выходные данные
Кавычка ( » )
Обратная косая черта ( \ ) \\
Косая черта ( / ) \/
Backspace \b
Подача страницы \f
Новая строка \n
Возврат каретки \r
Горизонтальная табуляция \t

Управляющие символы

Если исходные данные содержат символы элемента управления, FOR JSON предложение кодирует их в выходных данных JSON в \u формате, как показано в следующей таблице.

Управляющий символ Закодированные выходные данные
CHAR(0) \u0000
CHAR(1) \u0001
. .
CHAR(31) \u001f

Пример

Ниже приведен пример FOR JSON выходных данных для исходных данных, включающих как специальные символы, так и управляющие символы.

SELECT 'VALUE\ / "' AS [KEY\/"], CHAR(0) AS '0', CHAR(1) AS '1', CHAR(31) AS '31' FOR JSON PATH; 

Следующие шаги

  • Преобразование результатов запроса в формат JSON с помощью предложения FOR JSON (SQL Server)
  • SELECT — предложение FOR (Transact-SQL)
  • JSON as a bridge between NoSQL and relational worlds (JSON как мост между NoSQL и реляционными решениями)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *