2015-01-11 7 views
1

Я использую json.net для автоматического десериализации объектов json в .net-объекты. Пока json действительно, он работает.Html in json - как сделать его действительным (с javascript)?

Но у меня возникают проблемы с html в json ... специальные символы и кавычки делают json недействительным.

Как можно безопасно закодировать или удалить html, так что это действительно json? Мне нужен способ сделать это с помощью только javascript, потому что это клиентская сторона, отправляющая серверную сторону.

Редактировать Просто чтобы дать пример моего случая использования, у меня есть WYSIWYG в моем приложении, и мне нужно вход от включенных в часть объекта JSon быть размещена на мой сервер.

+0

Downvoter ... почему? – richard

+0

зачем передавать html в json? – lolbas

+0

@lolbas Только что отредактирован в прецеденте. – richard

ответ

2

Просто чтобы дать пример моего случая использования, у меня есть WYSIWYG в моем приложении и мне нужна вход от включена в качестве части объекта JSon быть размещена на мой сервер.

Если у вас есть пользовательский ввод в строковой переменной:

var userInput = 'Any crap with HTML you can imagine'; 

Вы можете просто JSON закодировать это для того, чтобы транспортировать его как допустимую строку JSON:

var json = JSON.stringify({ value = userInput }); 

Теперь результирующий объект будет выглядеть так:

{ 
    "value": "Any crap with HTML you can imagine" 
} 

, и на вашем сервере просто сопоставьте это с POCO с простым значением строки Value. Метод JSON.stringify обеспечит правильную сериализацию любого ввода в действительную строку JSON.

Это, как говорится, я не совсем понимаю вашу необходимость обертывания пользовательского ввода в строку JSOn, а затем десериализацию его обратно на сервере с помощью JSON.NET. Я бы предпочел отправить исходный вход как есть. Таким образом, вы получите точно такое же значение на сервере без накладных расходов на сериализацию JSON.

+0

Причина, в которой я нуждаюсь в json, - это нечто большее, чем просто тот ввод, который мне нужен, в то же время. В основном я создаю почтовый клиент, поэтому мне нужны адреса получателей, cc, from, html (из входа WYSIWYG) и некоторые другие. – richard

+0

Несомненно, но формат 'application/x-www-form-urlencoded' (который является стандартным HTML-форматом) отлично подходит для этого случая. Вы можете отправить произвольное количество значений на сервер одновременно. –

+0

Хорошо, два вопроса. 1. re: stringify, когда он сериализует его, является то, что все еще действительный html, то есть я могу использовать его как html для электронной почты или мне нужно десериализовать это как-то? 2. Как использовать приложение/x-www-form-urlencoded? – richard

 Смежные вопросы

  • Нет связанных вопросов^_^