如何添加“+;”在C#中添加属性名?

如何添加“+;”在C#中添加属性名?,c#,json,C#,Json,如何在C#中将属性或变量名声明为fg+ 我在JSON的响应中得到了fg+“fg+:“103308076644479658279” 我正在使用一个类反序列化它。如何从JSON中读取它?这样的变量名在C#中是不合法的 如果要使用来反序列化数据,可以使用JsonProperty属性为其指定自定义名称: [JsonProperty("fg+")] public string Fg { get; set; } 你的答案是正确的。但我认为键值对字典将在c#中支持它。@PankajParkar好吧,他的问题

如何在C#中将属性或变量名声明为
fg+

我在JSON的响应中得到了
fg+
“fg+:“103308076644479658279”


我正在使用一个类反序列化它。如何从JSON中读取它?

这样的变量名在C#中是不合法的

如果要使用来反序列化数据,可以使用
JsonProperty
属性为其指定自定义名称:

[JsonProperty("fg+")]
public string Fg { get; set; }

你的答案是正确的。但我认为
键值对
字典将在c#中支持它。@PankajParkar好吧,他的问题不是“如何将我的JSON反序列化到
字典
”,他想知道如何将其直接反序列化到属性。当然,前者是可能的。@ChrisCirefice:希望通过
obj[“key”]
语法而不是
obj.key
@dan04来访问值的人当然可以,但是如果您使用像Google GSON这样的JSON库来将JSON映射到Java对象或C#的JSON.NET,通常情况下,你会有一段糟糕的时光,会有很多奇怪的例外,没有明显的原因。是的,JSON键可以是字符串,但这不应该阻止创建要使用的JSON的人考虑由谁来解析它。在我看来,最好避免使用特殊符号作为标识符。除非我故意让人们生气,否则我永远不会创建如此奇怪的JSON。@sleblanc根据我使用JSON解析库的经验,它完全依赖于你的目标消费者。例如,在使用gsonjava库将JSON解析为Java对象时,使用名为
end
的JSON键不会有问题,因为它不是Java关键字。但是,不能为命名Java变量
,因为它是循环的关键字。诚然,像Gson这样的大多数库都允许重写键,因此您可以有一个名为
forDuration
的Java变量,对应于
的JSON键
,但是如果可以很容易地避免,为什么您希望潜在地导致问题呢?这听起来像是糟糕的设计。在使用编码方案时,我不必考虑解析器所用语言的规则。将JSON字段直接映射到变量听起来是一个非常糟糕的决定
[JsonProperty("fg+")]
public string Fg { get; set; }