Как избежать использования спецсимволов из 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.