JSON C# 和 RestSharp 的解析问题

JSON Parsing issue with C# and RestSharp

我正在解析以下内容 JSON:

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

我可以通过以下代码访问该元素:

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

但是,以下 C# 代码不起作用:

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);
}

任何帮助将不胜感激。

我认为你的 Events 是一个字典,所以你需要在 foreach 循环中获取 KeyValuePair 并访问它的 Value 属性。并且还更改了作用域变量名event,它不会编译,event是一个保留字。

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);
}