Экранирование символов при JSON сериализации.

3,891 views
Skip to first unread message

denis kodua

unread,
Dec 12, 2011, 1:02:08 PM12/12/11
to dotne...@googlegroups.com
Есть XML c символами форматирования, т.е. структура отформатирована и легко читаема.
Нужно сериализовать эту XML стороку в JSON. Так задача стоит =) 

После JSON сериализации символы переноса экранируются как u003e u003c
так же экранируются симолы  " и /

            JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
            var output = jsSerializer.Serialize(Resource1.xml_string);
            Console.WriteLine(output);
            Console.ReadKey();

А мне бы хотелось получить втутри JSON строки красивую XML без экранированных символов.
Подскажите пожалуйста почему это происходит и как это можно побороть ?

Например изначальная структура xml
<a>
<b>text</b>
<a/>

после json сериализации "\u003ca\u003e\r\n\u003cb\u003etext\u003c/b\u003e\r\n\u003ca/\u003e"

хотел бы получить
 "<a>
<b>text</b>
<a/>"

 

Глеб Иконников

unread,
Dec 12, 2011, 11:57:38 PM12/12/11
to dotne...@googlegroups.com
Используйте JsonConvert :


            var strSource = @"<a>
<b>text</b>
<a/>";
            var serialized = JsonConvert.SerializeObject(a));

Получите следующий результат: "<a>\r\n<b>text</b>\r\n<a/>"

И вообще не совсем понятно, зачем вы ждете от сериализованного ресурса читабельного строкового представления.

13 декабря 2011 г. 0:02 пользователь denis kodua <denis...@gmail.com> написал:



--
С уважением, Иконников Г.С.

denis kodua

unread,
Dec 13, 2011, 1:36:44 AM12/13/11
to dotne...@googlegroups.com


13 декабря 2011 г. 8:57 пользователь Глеб Иконников <flash...@gmail.com> написал:
Используйте JsonConvert :

 Спасибо за вариант, если испольхзовать JSON сериализацию в WCF сервисе, как тут можно настроить сериализацию не подскажите?

Глеб Иконников

unread,
Dec 13, 2011, 2:57:48 AM12/13/11
to dotne...@googlegroups.com
Вопрос не совсем ясен. У вас возникают какие-то проблемы с определением DataContract в вашем WSDL? Появляются ошибки при передачи данных через границу веб-сервиса? Как клиентские приложения получают WSDL сервиса? Возможно, что Json — не совсем удачный формат, и без сериализации в Json можно обойтись, нужен пример кода.

13 декабря 2011 г. 12:36 пользователь denis kodua <denis...@gmail.com> написал:

denis kodua

unread,
Dec 13, 2011, 3:31:17 AM12/13/11
to dotne...@googlegroups.com
Дело в том, что стоит задача сериализовать обект в json, в обекте одно из полей  это строка с xml, после json сериализации    xml изменяется.(кавчки экранируются, вместо переноса xml содержит экранированную строку \u00d\u00a)  Я бы хотел избежать изменения xml...
Мы решили удалять все лишнее на клиенте...
Спасибо за помошь =)

13 декабря 2011 г. 11:57 пользователь Глеб Иконников <flash...@gmail.com> написал:

Глеб Иконников

unread,
Dec 13, 2011, 3:38:21 AM12/13/11
to dotne...@googlegroups.com
Раз уж json, не хватит ли просто десериализовать его на клиенте?

Незачто.

13 декабря 2011 г. 14:31 пользователь denis kodua <denis...@gmail.com> написал:
Reply all
Reply to author
Forward
0 new messages