JSON:如何解析包含“object”的JSON字符串:“page”
问题描述:
我们接收来自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字符串一些文本替换“对象”,然后解析,但我们正在寻找是否有处理这种
答
使用@object
的标准方式:
dynamic result = JsonConvert.DeserializeObject<dynamic>(jsonRealTimeNotification);
string objectType = [email protected]();
这与在指定常规逐字标识符时使用的语法相同。从C# Language Specification, § 2.4.2 Identifiers (C#):
前缀“@”可以使用关键字作为标识符,与其他编程语言建立接口时很有用。字符@实际上并不是标识符的一部分,因此该标识符可能在其他语言中被看作是普通标识符,而没有前缀。带有@前缀的标识符称为逐字标识符。
样品fiddle。