JavaScriptSerializer 类是否已弃用?

0xD*_*BAD 5 c# asp.net-mvc serialization json

JavaScriptSerializer 类的MSDN 文档指出:

Json.NET 应该使用序列化和反序列化。为支持 AJAX 的应用程序提供序列化和反序列化功能。

这应该是某种弃用提示还是应该根本不使用此类(出于 JSON 序列化的目的)?

Lia*_*iam 5

2021年

2021 年,JavaScriptSerializer它不仅已弃用,而且已在 .Net Core 和 .Net 5.x 中删除。所以除非你的目标是 .Net Framework 4.8 或更低版本,否则你不能再使用它了。

替换的是System.Text.Json类套件。


是否已弃用

否。否则,他们会将其标记为obsolete

一般不应该使用这个类

提供您的目标 .Net Framework 4.8 或更低版本,然后确保您可以使用它,如果您想定位 .Net core 或 .Net 5,那么您不能,因为它不再可用。


这是可用的 .Net Framework类之间的比较。我实际上在另一个答案中更详细地介绍了System.Text.Json 与 Json.Net

现在它是最好的序列化器吗?基本上没有,甚至微软都知道这一点,并在内部使用Json.Net 来处理 Web.API 之类的事情。因此建议。与 JavaScriptSerializer 相比,它有几个优点。看起来新的微软正试图拥抱开源社区(希望不要消灭它......)并利用那里的丰富工具。

微软似乎无法下定决心让它真正过时我的猜测是他们仍在维护它,因为它在内部使用,并且重新编写东西以使用 Json.Net 只是比它的价值更多的工作。

Tl;博士

如果您的目标是 .Net Framework 4.8 或更低版本,请使用 Json.Net,对于 .Net 核心或 .Net 5,您可以在 Json.Net 或 System.Text.Json 之间进行选择