JsonResult разбирает специальные символы как \ a0000 (апостроф) - PullRequest
6 голосов
/ 16 февраля 2011

Я нахожусь в процессе преобразования некоторых наших веб-служб в MVC3 из WCF Rest.

Наши старые веб-службы возвращали JSON из POCO просто отлично, используя: [WebGet(.... ResponseFormat=WebMessageFormat.Json]

В моем контроллере для возврата назад простого poco я использую JsonResult в качестве типа возврата и создаю json с Json(someObject, ...).

В службе WCF Rest, апострофы и специальные символы форматируются чисто, когдапредставлены клиенту.

В контроллере MVC3 апострофы отображаются как \ u0027.

Есть мысли?Я новичок в сериализации JSON, поэтому любые указатели очень помогут.

Пример ответа: WCF Rest: {"CategoryId":8,"SomeId":6,"Name":"Richie's House"}

MVC3: {"CategoryId":8,"SomeId":6,"Name":"Richie\u0027s House"}

Ответы [ 3 ]

10 голосов
/ 17 февраля 2011

Это не должно быть проблемой, поскольку оба представления эквивалентны:

var a = {"CategoryId":8,"SomeId":6,"Name":"Richie\u0027s House"};
alert(a.Name);

alerts Richie's House.

2 голосов
/ 23 января 2014

Просто сделай:

yourObject.Name = yourObject.Name.Replace("'", "\\u027");

Итак, если вы попытаетесь сделать предупреждение в JavaScript или показать в браузере, оно будет выглядеть так:

Дом Ричи

1 голос
/ 23 февраля 2015

U+0027 - Unicode для апострофа (')

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

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