odatamediatypeformatter和jsonmediatypeformatter之间的区别

3
我想了解 OdataMediaTypeFormatterJsonMediaTypeFormatter 的区别。我尝试在网上搜索,但没有找到答案。我们最近发现,在我们假定使用 JsonMediaTypeFormatter 的情况下,实际使用的是 OdataMediaTypeFormatter。我们的客户使用 json.net 序列化他们的对象,因此我想切换到使用 JsonMediaTypeFormatter,但想知道这种切换会有什么变化。

我知道两者之间的一个区别-与反序列化“long”数据类型有关。OData 的 json 要求引用长值,而 json.net 则不需要。正如在此线程中所提到的 - WinJS OData JSON

任何相关指针都将有所帮助。非常感谢!

1个回答

1
ODataMediaTypeFormatter 既位于命名空间 System.Web.Http.OData.Formatter(也就是 ASP.NET Web API for OData V1-3),又位于命名空间 System.Web.OData.Formatter(也就是 ASP.NET Web API for OData V4)。因此,它是用于 OData 负载类型(即 Atom 和 JSON light 以及 OData V3 的 JSON verbose,以及 OData V4 的 OData JSON)的媒体类型格式化程序。
另一方面,JsonMediaTypeFormatter 属于 System.Net.Http.Formatting。因此,它是 .NET 框架用于处理 JSON 负载的本地部分。它们都派生自 System.Net.Http.Formatting.MediaTypeFormatter,但它们各自具有序列化和反序列化不同负载种类的实现。
为了理解什么是OData JSON,您可以参考此链接 OData JSON 格式版本 4.0。从中,您可以看到 ODataMediaTypeFormatter 处理许多 OData 特定的 JSON 元素和属性,而 JsonMediaTypeFormatter 则不具备这方面的知识。
因此,对于您的情况,由于您正在使用这个通用的JSON序列化程序:JSON.NET来序列化对象,只要您的客户端没有连接到OData服务,切换到使用JsonMediaTypeFormatter 不会有任何负面影响。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接