2014-04-20 80 views
3

我在寫一個工具來讀取JSON文件。我正在使用NewtonSoft工具將JSOn反序列化爲一個C#類。下面是一個示例片段:當字段名包含空格時反序列化JSON

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

字段名稱包含C#標識符中無效的空格和其他字符(。)。 這是做什麼的正確方法?

(不幸的是我沒有改變JSON格式的選項。)

回答

12

使用JsonProperty屬性以指示JSON的名稱。例如

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

完美,謝謝! – Sisiutl

0

不知道爲什麼,但這並不適用於我。在這個例子中,我每次只返回一個「BindingType」的空值。我居然發現它更容易剛纔下載的JSON結果爲一個字符串,然後做一些事情,如:

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

你會做,因爲反序列化之前的步驟。

也是少點文字。雖然這在我的例子中有效,但會出現這種情況。例如,如果「綁定類型」不僅是一個字段名稱,而且是一個數據段,這種方法會改變它以及可能不需要的字段名稱。

相關問題