WCF + JSON.Ответ WCF неверный, не ожидаемая строка - PullRequest
2 голосов
/ 18 марта 2011

Я настроил службу wcf и метод возвращает некоторую структуру. Проблема в том, что все символы в ответе «\» начинаются с «/» Пример:

    [
   {
      "rel":"http:\/\/localhost:3354\/customer\/1\/order",
      "uri":"http:\/\/localhost:3354\/customer\/1\/order\/3"
   },
   {
      "rel":"http:\/\/localhost:3354\/customer\/1\/order",
      "uri":"http:\/\/localhost:3354\/customer\/1\/order\/5"
   },
   {
      "rel":"http:\/\/localhost:3354\/customer\/1\/order",
      "uri":"http:\/\/localhost:3354\/customer\/1\/order\/8"
   }
]

И я возвращаю только http://localhost:3354/customer/1/order! Почему эти символы добавляются и как их удалить?

или @"http://cuustomer/1"

в json "http:\/\/cuustomer\/1"

Ответы [ 3 ]

5 голосов
/ 18 марта 2011

JSON spec escape-слеш.

char any-Unicode-символ - кроме - "- или - or-control-symbol \"\ \ / \ b \ f \ n \ r \ t \ u четыре шестнадцатеричные цифры

Итак: "/" в C # становится '\ /' в JSON

3 голосов
/ 18 марта 2011

'\' является управляющим символом в JSON .Чтобы включить \ в строку, вы должны экранировать ее с помощью символа /.Любой JSON-клиент должен иметь возможность правильно интерпретировать экранированные символы, поэтому вам не нужно (скорее, НЕ ДОЛЖНО) вносить какие-либо изменения в ваш код WCF.

Кроме того, Pradeep прав.URL используют косую черту.

3 голосов
/ 18 марта 2011

HTTP: \ локальный: 3354 \ клиент \ 1 \ порядка

Почему вы используете обратную косую черту. Обычно используемый способ - иметь косую черту. Я надеюсь, что ваш URL как "http://localhost:3354/customer/1/order" решит проблему.

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