序列化时,我应该更改什么设置以获取枚举的 int 值而不是其字符串表示形式



序列化对象时,我应该更改什么设置来获取枚举的属性值而不是其字符串表示形式? 我有以下课程。

public class ProductModel
{
    public long ProductId { get; set; }
    public int ContainerType { get; set; }
    public SolidForm SolidForm { get; set; }
}

(例如(现在--->我的 json =

{ "ProductId" : 22222,
  "ContainerType" : 1111,
  "SolidForm" : "Solid"
}

但我在序列化后需要这个。(不是枚举作为字符串(

{ "ProductId" : 22222,
  "ContainerType" : 1111,
  "SolidForm" : 1
}

我希望将对象中的所有枚举转换为 int。

这是我的 JSON 序列化设置

JsonSerializerSettings = new JsonSerializerSettings
    {
        DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
        Error = delegate (object sender, ErrorEventArgs args)
        {
            args.ErrorContext.Handled = true;
        }
    }

Newtonsoft.Json 中的默认值是将枚举序列化为 int。 假设你的意思是Newtonsoft.Json。

您的枚举是否用属性[JsonConverter(typeof(StringEnumConverter))]装饰?

相关内容

  • 没有找到相关文章

最新更新