2016-07-22 6 views
0

Wir erhalten JSON-Daten von Facebook Real Time Abonnement. Der JSON selbst enthält Eigenschaften wie "object": "page" und wir müssen auf diese Eigenschaft zugreifen.JSON: Wie analysiert man die JSON-Zeichenfolge, die "Objekt" enthält: "Seite"

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

Wir verwenden dynamisches Objekt JSON zu analysieren, aber wenn wir versuchen, die result.object zugreifen zu können, ist es nicht erlaubt als Objekt das Schlüsselwort in C# ist.

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

Wir können das „Objekt“ durch einen Text in dem ursprünglichen JSON-String ersetzen und dann analysieren, aber wir suchen, wenn es eine Standardmethode ist diesen

Antwort

1

Gebrauch zu handhaben @object:

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

Dies ist die gleiche Syntax wie bei der Angabe eines regulären Verbatim-Identifizierers. Von der C# Language Specification, § 2.4.2 Identifiers (C#):

Das Präfix "@" ermöglicht die Verwendung von Schlüsselwörtern als Bezeichner, was bei der Schnittstellenbildung mit anderen Programmiersprachen nützlich ist. Das Zeichen @ ist nicht Teil des Bezeichners, daher könnte der Bezeichner in anderen Sprachen als normaler Bezeichner ohne Präfix angezeigt werden. Ein Bezeichner mit einem @ Präfix wird als Verbatim-Bezeichner bezeichnet.

Beispiel fiddle.