C#匿名类型如何使用bool作为成员名生成指定JSON
解决C#匿名类型中使用关键字“bool”作为成员名的问题
以下是几种可行的解决办法:
使用@符号转义关键字
C#允许在标识符前加@符号转义关键字,以此将bool作为匿名类型的成员名。序列化JSON时,@会被自动忽略,生成符合目标系统要求的属性名。
示例代码:var myquery = new { @bool = "Yes" };序列化后得到的JSON结构:
{"bool":"Yes"}用Dictionary<string, object>替代匿名类型
直接通过字典存储键值对,键名可直接指定为"bool",无需考虑关键字限制,序列化后同样能生成目标JSON结构。
示例代码:var myquery = new Dictionary<string, object> { { "bool", "Yes" } };创建具名类并使用JsonProperty特性(适用于Json.NET)
如果项目依赖Newtonsoft.Json,可以定义一个具名类,通过JsonProperty特性指定JSON属性名为"bool",避开关键字冲突。
示例代码:using Newtonsoft.Json; public class QueryRequest { [JsonProperty("bool")] public string BoolFlag { get; set; } } var myquery = new QueryRequest { BoolFlag = "Yes" };
内容的提问来源于stack exchange,提问作者Bill Carson
相关产品推荐
相关产品推荐

