0

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

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;
        }
    }
4

1 回答 1

2

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

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

于 2017-12-28T14:34:05.797 回答