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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在序列化时,我应该更改什么设置来获取枚举的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 Serialization的设置

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

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

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

以上是关于在序列化时,我应该更改什么设置来获取枚举的int值而不是其字符串表示形式? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在枚举中获取枚举值的 int [重复]

当 Int 更改时,一个 JPanel 中 MousePressed 中的 Int 值不会更新

将xml反序列化为c#中的类时从XmlTextAttribute获取int值

PHP:带有值的枚举[重复]

如何从 EventLogEntryType 枚举中获取 int 值 [重复]

Android枚举:以编程方式从整数值设置枚举