2016-07-22 120 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