The*_*his 7 c# json.net .net-core-3.0 system.text.json
我最近将解决方案升级为全部.NET Core 3,并且我有一个类,要求类变量为字段。这是一个问题,因为新版本System.Text.Json.JsonSerializer不支持序列化或反序列化字段,而仅处理属性。
有什么方法可以确保下面的示例中的两个最终类具有相同的确切值?
using System.Text.Json;
public class Car
{
public int Year { get; set; } // does serialize correctly
public string Model; // doesn't serialize correctly
}
static void Problem() {
Car car = new Car()
{
Model = "Fit",
Year = 2008,
};
string json = JsonSerializer.Serialize(car); // {"Year":2008}
Car carDeserialized = JsonSerializer.Deserialize<Car>(json);
Console.WriteLine(carDeserialized.Model); // null!
}
Run Code Online (Sandbox Code Playgroud)
当前,字段不可序列化。但是正在进行开发工作。您可以关注此线程。https://github.com/dotnet/corefx/pull/39254
如果您希望 API 项目中的所有 MvcController 都这样做,您可以在设置中执行类似的操作:
builder.Services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.IncludeFields = true;
});
Run Code Online (Sandbox Code Playgroud)