0%

newtonjson高级特性

Enum序列化特殊字符串处理

枚举值在序列化输出时候, 想要包含不符合C#命名规范, 可以使用json的一些高级特性;

枚举类和枚举字段, 添加 json 特性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/// <summary>
/// 枚举命名时候不能特殊字符,例如: - . 等等, 但是使用json特性后, 枚举值序列化后, 可以显示为包含不符合c#命名规范的那些字符的字符串;
///
/// 例如枚举中字段为: 北京
/// 但是, 描述信息可以为: 北-京
/// 序列化之后为: {"city":"北--京"}
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public enum CityEnum
{
[EnumMember(Value = "北--京")]
北京,

上海,
广州
}

调用时候显示如下:

1
2
var p = new { city = CityEnum.北京 };
var json = JsonConvert.SerializeObject(p);

运行结果如下:

image-20200302132214190

-------------本文结束感谢您的阅读-------------
本网站所有内容均收集于互联网或自己创作, 方便于网友与自己学习交流,如有侵权,请留言,立即处理

欢迎关注我的其它发布渠道

本文标题:newtonjson高级特性

文章作者:peter

发布时间:2020年03月02日 - 11:03

最后更新:2022年07月28日 - 11:07

原始链接:https://www.123zhibei.xyz/article/e07896e6.html

许可协议: 转载请保留原文链接及作者。