我想要哪个Json序列化程序

本文关键字:序列化 程序 Json 我想要 | 更新日期: 2023-09-27 18:30:13

我启动了一个新的MVC 5 Web API项目,我想手动将对象编码为JSON以保存到数据库中。然而,在我的项目中,似乎至少有四个不同的类似JSON的序列化程序类可用:

  • System.Runtime.Serialization.Json.DataContractJsonSerializer
  • System.Web.Helpers.Json
  • Newtonsoft.Json.JsonConvert
  • Newtonsoft.Json.JsonSerializer

我有点理解为什么这四个在概念上不同:一个来自WCF,两个来自Newtonsoft;两个是快速和肮脏的转换,两个是可配置的串行器,等等

我想不通的是,我应该用哪一个真的重要吗。这4个选项在功能上有什么不同吗?如果我在另一个应用程序中使用一个类进行序列化,使用另一个类反序列化,会不会出现互操作性问题?

我想要哪个Json序列化程序

Newtonsoft序列化程序比传统的DataContractJsonSerializer更快,这就是为什么它通常包含在最新版本的MVC中。不过,您提到的两个Newtonsoft类型并不是都是序列化程序——我认为JsonConvert只是一个在内部使用JsonSerializer的实用程序类型。

因此,为了回答您的问题,序列化/反序列化json的最简单(也是最快的)方法如下:

// Serialize
YourType instance = new YourType();
string json = JsonConvert.SerializeObject(instance);
// Deserialize
string json = "json_string";
YourType instance = JsonConvert.DeserializeObject<YourType>(json);