2016-07-22 114 views
0

我們接收來自Facebook Real Time訂閱的JSON數據。 JSON本身包含像「object」:「page」這樣的屬性,我們需要訪問這個屬性。JSON:如何解析包含「object」的JSON字符串:「page」

{ 
    "entry":[ 
    { 
    "changes":[ ], 
    "id":"1037501376337008", 
    "time":1465883784 
    } 
    ],"object":"page" 
} 

我們使用動態對象來解析JSON,但是當我們嘗試訪問result.object,這是不允許的對象是在C#中的關鍵字。

dynamic result = JsonConvert.DeserializeObject<dynamic>(jsonRealTimeNotification); 
string objectType = result.object.ToString(); // This line does not build 

我們可以通過在原來的JSON字符串一些文本替換「對象」,然後解析,但我們正在尋找是否有處理這種

回答

1

使用@object的標準方式:

dynamic result = JsonConvert.DeserializeObject<dynamic>(jsonRealTimeNotification); 
string objectType = [email protected]();  

這與在指定常規逐字標識符時使用的語法相同。從C# Language Specification, § 2.4.2 Identifiers (C#)

前綴「@」可以使用關鍵字作爲標識符,與其他編程語言建立接口時很有用。字符@實際上並不是標識符的一部分,因此該標識符可能在其他語言中被看作是普通標識符,而沒有前綴。帶有@前綴的標識符稱爲逐字標識符。

樣品fiddle