Как использовать JSON.NET с ASP.NET MVC 4 Beta
Замена стандартного сериализатора для сериализатора JSON.NET не является проблемой. Код ниже был взят прямо из блога Скотта Хансельмана
http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx
JsonSerializerSettings serializerSettings = new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore };
serializerSettings.Converters.Add(new IsoDateTimeConverter());
GlobalConfiguration.Configuration.Formatters[0] = new JsonNetFormatter(serializerSettings);
Однако после этого я ничего не могу сохранить, вызов ajax не выполняется. Ошибка, которую я получаю обратно:
Этот DataController не поддерживает операцию "Вставка" для объекта "JObject".
JObject - это то, что возвращается из сериализатора JSON.NET. Он не учитывает свойство "__type", которое присоединяется к сущности.
Пример JSON:
[{"Id":"0","Operation":1,"Entity":{"__type":"Product:#Catalog.Models","Sku":"adsfadsf"}}]
Есть ли что-нибудь, что я могу сделать, если окунуться в исходный код JSON.NET, чтобы это исправить? Есть ли обновление для ASP.NET MVC 4 Beta, которое исправит это?
2 ответа
ASP.NET MVC 4 все еще находится в бета-версии, и есть несколько функций, которые пока не работают на 100%. В прошлый раз, когда я проверял, интеграция Newtonsoft.Json и JsonSerializer не завершена. После разговора с некоторыми людьми из команды ASP.NET я понял, что над этим работаю, но нет никаких сроков для завершения.
Это уже является частью вклада WebAPI. Посмотрите здесь. Код на самом деле довольно прост.