title: Iterate Through JSON Array in C#
body: <p>I'm trying to figure out how to loop through some JSON data to insert it into a DataGrid, to serve as an event log. However trying to parse JSON is giving me a headache.</p>
  
  <p>I'm trying to use JSON.NET by Newtonsoft.</p>
  
  <p>The JSON string looks something like this;</p>
  
  <pre><code>{
      "result" : "ok",
      "response" : {
      "first" : 0,
      "count" : 190,
      "now" : 1509822169,
      "events" : [
      {
          "index" : 0,
          "time" : 1509815973,
          "name" : "SessionCreated",
          "attributes" : {}
      },
      {
          "index" : 1,
          "time" : 1509815973,
          "name" : "PlayerJoined",
          "refid" : 32896,
          "attributes" : {}
          "Name" : "Dealman",
          "SteamId" : "76561197986562417"
      },
      {
          "index" : 2,
          "time" : 1509815973,
          "name" : "Authenticated",
          "refid" : 32896,
          "attributes" : {}
      },
      {
          "index" : 3,
          "time" : 1509815973,
          "name" : "StateChanged",
          "attributes" : {}
          "PreviousState" : "None",
          "NewState" : "Lobby"
      },
      {
          "index" : 4,
          "time" : 1509815998,
          "name" : "PlayerChat",
          "refid" : 32896,
          "attributes" : {
              "Message" : "This is a message"
          }
      },
      {
          "index" : 5,
          "time" : 1509816030,
          "name" : "StateChanged",
          "attributes" : {}
          "PreviousState" : "Lobby",
          "NewState" : "Loading"
      },
      {
          "index" : 6,
          "time" : 1509816030,
          "name" : "SessionSetup",
          "attributes" : {}
          "GridSize" : 22,
          "MaxPlayers" : 22,
          "PracticeLength" : 0,
          "QualifyLength" : 15,
          "RaceLength" : 6,
          "Flags" : -1316224232,
          "TrackId" : -52972612,
          "GameMode" : -1958878043
      },
      {
          "index" : 7,
          "time" : 1509816030,
          "name" : "StageChanged",
          "attributes" : {
              "PreviousStage" : "Practice1",
              "NewStage" : "Qualifying1",
              "Length" : 15
          }
      },
      {
          "index" : 8,
          "time" : 1509816046,
          "name" : "StateChanged",
          "attributes" : {
              "PreviousState" : "Loading",
              "NewState" : "Race"
          }
      },
      {
          "index" : 9,
          "time" : 1509816046,
          "name" : "ParticipantCreated",
          "refid" : 32896,
          "participantid" : 0,
          "attributes" : {
              "Name" : "Dealman",
              "IsPlayer" : 1,
              "VehicleId" : 1764851930,
              "LiveryId" : 54
          }
      }]}
  }
  </code></pre>
  
  <p>I've been trying to do something like this;</p>
  
  <pre><code>dynamic jsonObj = JsonConvert.DeserializeObject(messageContent);
  foreach(var item in jsonObj)
  {
      Trace.WriteLine(item.result);
  }
  </code></pre>
  
  <p>I've also tried some other methods like using lists, but I simply can't get it to work and I keep getting a <strong>RuntimeBinderException</strong>. I've been stuck at this for so long now that I'm starting to consider to just use regex as this seems to be more work than it's worth.</p>
  
  <p>What am I missing and/or misunderstanding here? :(</p>