【问题标题】:Newton.JSON Serialize number to Enum item [duplicate]Newton.JSON将数字序列化为枚举项[重复]
【发布时间】:2019-03-15 06:45:08
【问题描述】:

我们想用 Newton.JSON 将一个对象序列化为 JSON,但是这个对象使用一个枚举,然后在底层 int 中进行转换(请参阅下面的 JSON 中的“数据类型”)。 如何继续获得“枚举字符串”表示?

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

【问题讨论】:

标签: c# serialization enums json.net numbers


【解决方案1】:

您可以用自己的 JsonSerializer 替换标准的 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,
            });
        }
    }

【讨论】:

    猜你喜欢
    • 2012-02-27
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    相关资源
    最近更新 更多