2017-09-28 4 views
0

Je suis le JSON analyse syntaxique suivante:JSON question avec Parsing C# et RestSharp

{ 
result: [ 
    { 
    EventType: { 
    EventTypeDesc: "horse-racing", 
    events: { 
     Local: { 
     Events: { 
      530857: { 
      Venue: "Northam", 
      StateCode: "WA", 
      CountryCode: "AUS" 
      }, 
      530858: { 
      Venue: "Caulfield", 
      StateCode: "VIC", 
      CountryCode: "AUS" 
      } 
      } 
     } 
     } 
    } 
    } 
    ] 
} 

je peux accéder à l'élément par le code suivant:

responseDeserializeObject.result [0] .EventType.events. . Local.Events [ "530857"] Venue

Cependant, le code C# ne fonctionne pas:

dynamic responseDeserializeObject = HttpGetResponse(endPoint); 
foreach (var event in responseDeserializeObject.result[0].EventType.events.Local.Events) 
{ 
    Console.WriteLine(event.Venue); 
    Console.WriteLine(event.StateCode); 
    Console.WriteLine(event.CountryCode); 
} 

Toute aide sera grandement appréciée.

+0

Quelle erreur obtenez-vous? –

+0

Vous avez une faute de frappe dans 'Console.Writeline (..)' –

Répondre

2

Je pense que votre Events est un dictionnaire, vous devez donc obtenir KeyValuePair dans la boucle et l'accès foreach sa propriété Value. Et aussi changer le nom de la variable scoped event, il ne sera pas compiler, event est un mot réservé.

dynamic responseDeserializeObject = HttpGetResponse(endPoint); 
foreach (var ev in responseDeserializeObject.result[0].EventType.events.Local.Events) 
{ 
    var value = ev.Value; 

    Console.WriteLine(value.Venue); 
    Console.WriteLine(value.StateCode); 
    Console.WriteLine(value.CountryCode); 
} 
+1

Ceci, plus 'WriteLine' et utilisez un autre nom de variable. Sûrement, 'var event' ne compile pas? –

+0

Désolé mécaniquement obtenir ce nom –

+0

Cela fonctionne merci @SurenSrapyan – Aby