JSON:如何解析包含“object”的JSON字符串:“page”

时间:2016-07-22 07:16:57

标签: json c#-4.0 json.net

我们从Facebook Real Time订阅中收到JSON数据。 JSON本身包含“object”:“page”之类的属性,我们需要访问此属性。

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

我们使用动态对象来解析JSON,但是当我们尝试访问result.object时,不允许使用它,因为object是C#中的关键字。

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

我们可以用原始JSON字符串中的某些文本替换“对象”然后解析,但我们正在寻找是否有一种标准的方法来处理这个

1 个答案:

答案 0 :(得分:1)

使用@object

dynamic result = JsonConvert.DeserializeObject<dynamic>(jsonRealTimeNotification);
string objectType = result.@object.ToString();    

这与指定常规逐字标识符时使用的语法相同。来自C# Language Specification, § 2.4.2 Identifiers (C#)

  

前缀“@”允许使用关键字作为标识符,这在与其他编程语言交互时很有用。字符@实际上不是标识符的一部分,因此标识符可能在其他语言中看作普通标识符,没有前缀。带有@前缀的标识符称为逐字标识符。

示例fiddle