Newton.JSON将数字序列化为Enum项目

时间:2018-10-10 11:05:41

标签: c# serialization enums json.net numbers

我们想使用Newton.JSON将对象序列化为JSON,但是此对象使用枚举,然后在基础int中进行转换(请参见下面的JSON中的“数据类型”)。 如何获得“枚举字符串”表示形式?

{
    "Timestamp": 1538568112852,
    "Metrics": [{
        "Name": "bdSeq",
        "Timestamp": 1538568112852,
        "Datatype": 4,
        "IsNull": false,
        "LongValue": 0
    }],
    "Seq": 18446744073709551615
}

1 个答案:

答案 0 :(得分:0)

您可以用自己的标准JsonSerializer代替。

在startup.cs中:

services.AddScoped(typeof(JsonSerializer), typeof(EnumAsStringSerializer));

以及类本身:

 public class EnumAsStringSerializer : JsonSerializer
    {
        public EnumAsStringSerializer()
        {
            this.ContractResolver = new CamelCasePropertyNamesContractResolver();
            this.Converters.Add(new StringEnumConverter
            {
                CamelCaseText = true,
            });
        }
    }