c# - Newton.JSON 将数字序列化为枚举项
问题描述
我们想用 Newton.JSON 将一个对象序列化为 JSON,但是这个对象使用一个枚举,然后在底层 int 中进行转换(参见下面 JSON 中的“数据类型”)。如何继续获得“枚举字符串”表示?
{
"Timestamp": 1538568112852,
"Metrics": [{
"Name": "bdSeq",
"Timestamp": 1538568112852,
"Datatype": 4,
"IsNull": false,
"LongValue": 0
}],
"Seq": 18446744073709551615
}
解决方案
您可以用自己的 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,
});
}
}
推荐阅读
- ibm-mq - IBM MQ8 与 JBoss EAP 7.0 兼容吗?
- mongodb - 将scrapy容器连接到mongo容器
- sql - 按嵌套查询排序
- function - GoogleScript - 从 Google 工作表通过电子邮件发送非空白值 - OnFormSubmit
- android - 如何从 googlemap 地址中获取“城市名称”?
- javascript - 有没有办法通过指定您不想发送任何浏览器数据来发送跨域请求?
- apache-spark - 如何使用 Dataset 在 Java Spark 中表示平面图
- django - Django 和 celery DatabaseError: DatabaseWrapper
- c# - 如何通过 ATATA 登录
- azure - Azure 函数应用程序 - 数据自动转义引号并引发错误