Очистка строк для получения допустимых значений JSON - PullRequest
7 голосов
/ 28 июня 2010

Я хочу очистить строки, которые извлекаются из базы данных.

Я столкнулся с этой проблемой, когда значение свойства (имя из базы данных) имело встроенный символ TAB, и Chrome выдал мне недопустимую ошибку TOKEN при попытке загрузить объект JSON.

Итак, я перешел к http://www.json.org/ и на стороне у него есть спецификация. Но у меня возникают проблемы с пониманием, как написать моющее средство, используя эту спецификацию:

строка

  • ""
  • " символы "

* символы 1022 *

  • символ
  • char char

символ

  • любой-Unicode, характери- кроме - "- или - или- контроль символов
  • \ "
  • \\
  • /
  • \ б
  • \ f
  • \ п
  • \ г
  • \ т
  • четыре шестнадцатеричные цифры

Учитывая строку, как я могу "очистить" ее так, чтобы я соответствовал этой спецификации?

В частности, я запутался: разрешены ли в спецификации символы TAB (0x0900)? Если так, то почему Chrome выдал неверную ошибку TOKEN?

Ответы [ 2 ]

13 голосов
/ 28 июня 2010

Символы табуляции (действительные 0x09, не экранированные) не могут появляться внутри кавычек в JSON (хотя они являются действительными пробелами вне кавычек).Вам нужно будет экранировать их с помощью \t или \u0009 (первое предпочтительнее).

json.org говорит, что неэкранированный символ строки должен быть:

Любой символ UNICODE, кроме "или \ или управляющего символа

Tab считается контрольным символом.

2 голосов
/ 28 июня 2010

Это, возможно, то, что вы ищете, показывает, как использовать класс JavaScriptSerializer в C #.

Как создать строку JSON в C #

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...