当字段名包含空格时,反序列化JSON

我正在编写一个读取JSON文件的工具。 我正在使用NewtonSoft工具将JSOn反序列化为C#类。 这是一个示例片段:

"name": "Fubar", ".NET version": "4.0", "binding type": "HTTP", 

字段名称包含空格和C#标识符中无效的其他字符(。)。 这样做的正确方法是什么?

(很遗憾,我没有更改JSON格式的选项。)

使用JsonProperty属性指示JSON中的名称。 例如

 [JsonProperty(PropertyName = "binding type")] public string BindingType { get; set; } 

不知道为什么,但这对我不起作用。 在这个例子中,我每次都只为“BindingType”返回一个null。 我实际上发现将Json结果作为字符串下载更容易,然后执行以下操作:

  myString = myString.Replace(@"binding type", "BindingType") 

您将在反序列化之前执行此操作。

一点点的文字也少了。 虽然这在我的例子中起作用,但在某些情况下可能没有。 例如,如果“绑定类型”不仅是字段名称而且是一段数据,则此方法将改变它以及可能不希望的字段名称。