Может ли WCF принимать JSON, закодированный с использованием одинарных кавычек и не заключенных в кавычки идентификаторов? - PullRequest
1 голос
/ 09 февраля 2011

Есть ли способ, которым я могу дать команду WCF принимать JSON, отформатированный с использованием одинарных кавычек (в отличие от двойных кавычек):

{
   'foo': 'bar'
}

Или с использованием не заключенных в кавычки идентификаторов, например:

{
    foo: 'bar'
}

На самом деле, кажется, что JSON будет принят, только если он отформатирован следующим образом:

{
    "foo": "bar"
}

Использование любого из первых двух примеров приводит к 400 (неправильный запрос).

Ответы [ 2 ]

2 голосов
/ 28 февраля 2011

DataContractJsonSerializer всегда пишет строгий JSON.

В различные моменты во время десериализации (как правило, отсутствуют конечные теги для массивов или объектов, или неправильное экранирование, или неправильно отформатированные числа), он принимает неправильный, нестрогий JSON .

Однако я могу окончательно сказать вам, что это не один из таких случаев.DataContractJsonSerializer всегда требуются строки в двойных кавычках для JSON.

Надеюсь, это поможет!

2 голосов
/ 09 февраля 2011

Первые два примера являются недействительными текстами JSON.http://www.ietf.org/rfc/rfc4627.txt

object = begin-object [ member *( value-separator member ) ]
end-object

member = string name-separator value

string = quotation-mark *char quotation-mark

quotation-mark = %x22      ; "
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...