Как избежать использования спецсимволов из RETS с использованием phrets?

Существует ли какой-либо механизм, позволяющий избежать нежелательных / специальных символов с сервера RETS с использованием запросов и фраз DMQL?

Например: Избегайте двойных кавычек ("значение") из данных. Также избегая комбинации символов, таких как ("значение /"), это также вызывает много проблем.

Я могу сбежать после загрузки с помощью сценария php. Но тогда возникает вопрос, какой прямой метод, который обрабатывает такое побег из RETS, заканчивается сам?

Спасибо

1 ответ

Нет ничего, что я могу найти в спецификации, которая экранирует или игнорирует символы для вас. Эта функция выходит за рамки RETS.

Реальный вопрос, который здесь задают, заключается в том, как кодировать JSON в формате CSV.

Вот строка, которую вы хотите закодировать

"one","two"

скажем, хранится в start переменная

Позвольте закодировать это как объект JSON:

jsonString = '{"data":"' + start.Replace('"','\\"') + '"}';

-> {"data":"\"one\",\"two\""}

Протестируйте его на http://jsonlint.com/ и соблюдайте действительный JSON

Так что, если вам нужно было сохранить это в CSV-файле, вам придется снова его кодировать.

string csvJsonString = '"' + jsonString.Replace('"','""') + '"';

-> "{""data"":""\""one\"",\""two\""""}"

строка validCsv = csvJsonString + "," + csvJsonString

-> "{""data"":""\""one\"",\""two\""""}","{""data"":""\""one\"",\""two\""""}"

Проверьте это на http://csvlint.io/ и убедитесь, что он действительный CSV.

На этом этапе строка validCsv больше не является допустимым JSON, конечно, она должна быть проанализирована читателем CSV обратно в JSON.

Другие вопросы по тегам