而不是这个:
JsonSerializerOptions options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
// etc.
};
var so = JsonSerializer.Deserialize<SomeObject>(someJsonString, options);
我想做这样的事情:
// This property is a pleasant fiction
JsonSerializer.DefaultSettings = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
// etc.
};
// This uses my options
var soA = JsonSerializer.Deserialize<SomeObject>(someJsonString);
// And somewhere else in the same codebase...
// This also uses my options
var soB = JsonSerializer.Deserialize<SomeOtherObject>(someOtherJsonString);
希望不必JsonSerializerOptions
为我们最常见的情况传递一个实例,并为异常而不是规则覆盖。
如本问答所述,这是 Json.Net 的一个有用功能。我查看了.NET Core的文档以及这个 GitHub 存储库。而这个。System.Text.Json
在 .NET Core 3 中似乎没有用于管理 JSON 序列化默认值的类比。还是我忽略了它?
更新 [2019-10-10]: 如果有兴趣看到这种行为的实施,请
System.Text.Json.JsonSerializer
直接前往Chris Yungmann指出的开放 GitHub 问题并权衡。