系统文本
.NET core 3.0带有System.Text.Json
内置功能,这意味着您可以在不使用第三方库的情况下反序列化/序列化JSON 。
要将您的类序列化为JSON字符串:
var json = JsonSerializer.Serialize(order);
要将JSON反序列化为强类型类:
var order = JsonSerializer.Deserialize<Order>(json);
因此,如果您有一个像下面这样的课程:
public class Order
{
public int Id { get; set; }
public string OrderNumber { get; set; }
public decimal Balance { get; set; }
public DateTime Opened { get; set; }
}
var json = JsonSerializer.Serialize(order);
// creates JSON ==>
{
"id": 123456,
"orderNumber": "ABC-123-456",
"balance": 9876.54,
"opened": "2019-10-21T23:47:16.85",
};
var order = JsonSerializer.Deserialize<Order>(json);
// ==> creates the above class
需要注意的一件事是,使用自己的代码时System.Text.Json
不会自动处理camelCase
JSON属性(但是,使用MVC / WebAPI请求和模型绑定程序时会自动处理)。
要解决此问题,您需要将其JsonSerializerOptions
作为参数传递。
JsonSerializerOptions options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase, // set camelCase
WriteIndented = true // write pretty json
};
// pass options to serializer
var json = JsonSerializer.Serialize(order, options);
// pass options to deserializer
var order = JsonSerializer.Deserialize<Order>(json, options);
System.Text.Json也可作为Nu-get包System.Text.Json用于.Net Framework和.Net Standard。