使用System.Text.Json(.netcore-3.0)而不是Newtonsoft.Json的扩展功能是什么?

时间:2019-11-18 06:22:34

标签: c# json system.text.json

我已经使用Newtonsoft.Json将JSON对象转换为字符串,反之亦然。最近,我在https://docs.microsoft.com/en-gb/dotnet/api/system.text.json?view=netcore-3.0中读到了 System.Text.Json

我阅读了这篇文章,它比 Newtonsoft.Json

使用Newtonsoft.Json;

using Newtonsoft.Json;
Product product = new Product();    
product.Name = "Apple";
product.ExpiryDate = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small", "Medium", "Large" };    
string output = JsonConvert.SerializeObject(product);
//{
//  "Name": "Apple",
//  "ExpiryDate": "2008-12-28T00:00:00",
//  "Sizes": [
//    "Small",
//    "Medium",
//    "Large"
//  ]
//}

Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);

使用System.Text;

using System.Text.Json;
using System.Text.Json.Serialization;

Product product = new Product();    
product.Name = "Apple";
product.ExpiryDate = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small", "Medium", "Large" }; 
string jsonString = JsonSerializer.Serialize(product);

var objproduct = JsonSerializer.Deserialize<Product>(jsonString);

2 个答案:

答案 0 :(得分:0)

是的,可以。除非您遇到一些问题,否则没有人会阻止您。 但是在一个项目中会有一些指导原则,因此最好遵循这些指导原则,如果您要实施新的东西,最好与团队讨论然后实施。

答案 1 :(得分:0)

在System.Text.Json中默认情况下转义的HTML是一个区别示例。

空值和循环引用处理还有一些其他区别。

System.Text.Json从.NET Core 3.0开始不对字段进行序列化。

System.Json.Text不是Json.NET的一对一替代。