2016-07-22 11 views
0

Facebook Real TimeサブスクリプションからJSONデータを受け取ります。 JSON自体には "object": "page"のようなプロパティがあり、このプロパティにアクセスする必要があります。JSON: "object": "page"を含むJSON文字列を解析する方法

{ 
    "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