旅游网站设计图,wordpress 怎么删除主题,.net flash网站模板,网站做外链怎么样咨询区 Theyouthis#xff1a;最近我将项目升级到 .NET Core 3 之后#xff0c;我发现自带的 System.Text.Json.JsonSerializer 序列化器有一个奇葩的问题#xff0c;它不支持对 类字段 的序列化。。。参考如下代码#xff1a;namespace ConsoleApp6
{class Program{static… 咨询区 Theyouthis最近我将项目升级到 .NET Core 3 之后我发现自带的 System.Text.Json.JsonSerializer 序列化器有一个奇葩的问题它不支持对 类字段 的序列化。。。参考如下代码
namespace ConsoleApp6
{class Program{static void Main(string[] args){Car car new Car(){Model Fit,Year 2008,};string json JsonSerializer.Serialize(car); // {Year:2008}Car carDeserialized JsonSerializer.DeserializeCar(json);Console.WriteLine(carDeserialized.Model); // null!}}public class Car{public int Year { get; set; } // does serialize correctlypublic string Model; // doesnt serialize correctly}
}只有将字段改成属性才可以要多坑有多坑,现在全量修改代码那是不可能的了请问是否有变通的方法实现呢回答区 pavinan字段被序列化的问题在 .NET5 中已经加入了但还是需要你在 JsonSerializerOptions 中显示开启如下代码所示
static void Main()
{var car new Car { Model Fit, Year 2008 };// Enable supportvar options new JsonSerializerOptions { IncludeFields true };// Pass optionsvar json JsonSerializer.Serialize(car, options);// Pass optionsvar carDeserialized JsonSerializer.DeserializeCar(json, options);Console.WriteLine(carDeserialized.Model); // Writes Fit
}public class Car
{public int Year { get; set; }public string Model;
}Michaël Catanzariti我写了一个库对 System.Text.Json 做了一些扩展你可以试试看githubhttps://github.com/dahomey-technologies/Dahomey.Json 这个库中我已经加入了对 field 的支持参考代码
using System.Text.Json;
using Dahomey.Jsonpublic class Car
{public int Year { get; set; } // does serialize correctlypublic string Model; // will serialize correctly
}static void Problem() {JsonSerializerOptions options new JsonSerializerOptions();options.SetupExtensions(); // extension method to setup Dahomey.Json extensionsCar car new Car(){Model Fit,Year 2008,};string json JsonSerializer.Serialize(car, options); // {Year:2008,Model:Fit}Car carDeserialized JsonSerializer.DeserializeCar(json);Console.WriteLine(carDeserialized.Model); // Fit
}点评区 我去这确实是一个蛮大的坑幸亏我一直在用 JSON.NET,这也说明 System.Text.Json 目前还不是特别完善没有达到替代 JSON.NET 的程度大家用的时候注意避坑。