【问题标题】:JSON Parsing issue with C# and RestSharpC# 和 RestSharp 的 JSON 解析问题
【发布时间】:2018-03-09 17:55:39
【问题描述】:

我正在解析以下 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);
}

我们将不胜感激。

【问题讨论】:

  • 你得到什么错误?
  • 你在Console.Writeline(..)中有错字

标签: c# json dynamic json.net restsharp


【解决方案1】:

我认为您的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);
}

【讨论】:

  • 这个,加上WriteLine 并使用另一个变量名。当然,var event 不会编译?
  • 对不起,机械地得到那个名字
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多