Десериализация с использованием библиотеки JSON.NET - PullRequest
2 голосов
/ 14 декабря 2009

Я только что обнаружил небольшую странность в поведении библиотеки Джеймса Ньютона-Кинга JSON.NET. Я использую его для десериализации пользовательских функций JSON на стороне клиента, и все работает - даже проверка достоверности. Пока клиент не отправит другой тип «функции»:

CustomJSONConverter converter=new CustomJSONConverter();
MyJSONFeature jsonFeature=JsonConvert.Deserialize<MyJSONFeature>(clientString,converter);

возвращает правую jsonFeature, если указанная строка верна, корректно генерирует исключение, если строка содержит искаженный JSON, но неправильно возвращает некоторый объект, если строка содержит допустимый сериализованный объект другого типа. Я предполагал, что при указании типа метод Deserialize () должен выдавать исключение, когда типы не совпадают, но, очевидно, это не так.

Использование (или не использование) собственного JSONConverter не имеет никакого эффекта, оно просто для какой-то специальной обработки атрибута JSON.

Копание документации не очень помогло. Я использую версию 3.5 (в .NET Framework 3.5 тоже). Я что-то пропустил? Заранее спасибо ...

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