fre*_*per 8 c# enums json .net-core system.text.json
System.Text.Json默认以enum序列化编号。就我而言,我需要 Startup.cs 中的字符串,我添加一个转换器来将所有枚举序列化为字符串,如此处所示。
.AddJsonOptions(
c =>
{
c.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
}
);
Run Code Online (Sandbox Code Playgroud)
但我有一个特定的枚举,我需要将其序列化为数字。
public enum fareStatus
{
None = 0,
Club = 1,
NoClub = 2
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下我想得到 0,1,2 而不是字符串,
在这种情况下可能吗?谢谢
如果你只想从枚举中获取数字试试这个
var item = new Item { Status = fareStatus.NoClub };
var options = new JsonSerializerOptions();
var json= JsonSerializer.Serialize(item,options);
Run Code Online (Sandbox Code Playgroud)
json
{"Status":2}
Run Code Online (Sandbox Code Playgroud)
并尝试这个代码
var options = new JsonSerializerOptions();
options.Converters.Add(new JsonStringEnumConverter());
var json= JsonSerializer.Serialize(item,options);
item=JsonSerializer.Deserialize<Item>(json,options);
Run Code Online (Sandbox Code Playgroud)
json
{"Status":"NoClub"}
Run Code Online (Sandbox Code Playgroud)
班级
public class Item
{
public fareStatus Status {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6927 次 |
| 最近记录: |