换掉JSON.NET序列化程序的标准序列化程序是没有问题的。以下代码直接取自Scott Hanselman的博客
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'的操作'Insert'。
JObject是从JSON.NET序列化程序返回的内容。它不遵守附加到实体的“__type”属性。
示例JSON:
[{"Id":"0","Operation":1,"Entity":{"__type":"Product:#Catalog.Models","Sku":"adsfadsf"}}]
有什么我可以做的,只需要深入了解JSON.NET源代码来解决这个问题吗? ASP.NET MVC 4 Beta是否有更新可以修复此问题?
答案 0 :(得分:0)
这已经是WebAPI contrib的一部分。看看here。代码实际上非常简单。
答案 1 :(得分:0)
ASP.NET MVC 4仍然处于测试阶段,并且有一些功能尚未100%完成。我最后一次检查Newtonsoft.Json和JsonSerializer的集成是不完整的。在与ASP.NET团队的一些人交谈之后,我的理解是它正在进行中,但没有完成的时间表。