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