如何解决遍历列表分配变量的列表
我在遍历json试图分配所有变量时遇到麻烦。我认为这是因为我没有遍历列表或清单(清单)而无法正常工作。对不起,如果我的代码中的变量名等有点混乱,但是我一直在反复尝试以弄清楚它的位置,但是现在我到了一个我不知道自己在哪里的地方。 >
我从API获取JSON字符串。它存储在名为“ body”的变量中,并将此字符串反序列化为名为“ json”的字符串。在这一点上一切都很好。但是现在我试图遍历所有内容并将值分配给所有变量。这是我的代码的样子:
List<Standings> s = new List<Standings>();
var json = JsonConvert.DeserializeObject<Root>(body);
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(endpoint);
var standing = json.api;
//Console.WriteLine(standing.results.ToString());
foreach (var stand in standing.Standings)
{
var al = new All
{
matchsPlayed = stand.all.matchsPlayed,win = stand.all.win,draw = stand.all.draw,lose = stand.all.lose,goalsFor = stand.all.goalsFor,goalsAgainst = stand.all.goalsAgainst
};
var ho = new Home
{
matchsPlayed = stand.home.matchsPlayed,win = stand.home.win,draw = stand.home.draw,lose = stand.home.lose,goalsFor = stand.home.goalsFor,goalsAgainst = stand.home.goalsAgainst
};
var aw = new Away
{
matchsPlayed = stand.away.matchsPlayed,win = stand.away.win,draw = stand.away.draw,lose = stand.away.lose,goalsFor = stand.away.goalsFor,goalsAgainst = stand.away.goalsAgainst
};
var standings = new List<Standings>();
foreach (var b in standing.Standings)
{
standings.Add(new Standings
{
rank = b.rank,team_id = b.team_id,teamName = b.teamName,logo = b.logo,group = b.group,forme = b.forme,status = b.status,description = b.description,all = al,home = ho,away = aw,goalsDiff = b.goalsDiff,points = b.points,lastUpdate = b.lastUpdate
});
}
s.Add(new Api
{
results = stand.results,Standings = al
});
}
这是我的全部财产,我认为这都是正确的:
public partial class All
{
public int matchsPlayed { get; set; }
public int win { get; set; }
public int draw { get; set; }
public int lose { get; set; }
public int goalsFor { get; set; }
public int goalsAgainst { get; set; }
}
public partial class Home
{
public int matchsPlayed { get; set; }
public int win { get; set; }
public int draw { get; set; }
public int lose { get; set; }
public int goalsFor { get; set; }
public int goalsAgainst { get; set; }
}
public partial class Away
{
public int matchsPlayed { get; set; }
public int win { get; set; }
public int draw { get; set; }
public int lose { get; set; }
public int goalsFor { get; set; }
public int goalsAgainst { get; set; }
}
public partial class Standings
{
public int rank { get; set; }
public int team_id { get; set; }
public string teamName { get; set; }
public string logo { get; set; }
public string group { get; set; }
public string forme { get; set; }
public string status { get; set; }
public string description { get; set; }
public All all { get; set; }
public Home home { get; set; }
public Away away { get; set; }
public int goalsDiff { get; set; }
public int points { get; set; }
public string lastUpdate { get; set; }
}
public partial class Api
{
public int results { get; set; }
public List<List<Standings>> Standings { get; set; }
}
public partial class Root
{
public Api api { get; set; }
}
这是我正在使用的JSON:
{"api":{"results":1,"standings":[[{"rank":1,"team_id":45,"teamName":"Everton","logo":"https:\/\/media.api-sports.io\/football\/teams\/45.png","group":"Premier League","forme":"DWWWW","status":"same","description":"Promotion - Champions League (Group Stage)","all":{"matchsPlayed":5,"win":4,"draw":1,"lose":0,"goalsFor":14,"goalsAgainst":7},"home":{"matchsPlayed":3,"win":2,"goalsFor":11,"goalsAgainst":6},"away":{"matchsPlayed":2,"draw":0,"goalsFor":3,"goalsAgainst":1},"goalsDiff":7,"points":13,"lastUpdate":"2020-10-23"},{"rank":2,"team_id":66,"teamName":"Aston Villa","logo":"https:\/\/media.api-sports.io\/football\/teams\/66.png","forme":"WWWW","all":{"matchsPlayed":4,"goalsFor":12,"goalsAgainst":2},"home":{"matchsPlayed":2,"goalsFor":8,"goalsFor":4,"goalsAgainst":0},"goalsDiff":10,"points":12,{"rank":3,"team_id":40,"teamName":"Liverpool","logo":"https:\/\/media.api-sports.io\/football\/teams\/40.png","forme":"DLWWW","win":3,"lose":1,"goalsFor":13,"goalsAgainst":13},"goalsFor":7,"goalsAgainst":4},"away":{"matchsPlayed":3,"win":1,"goalsFor":6,"goalsAgainst":9},"goalsDiff":0,"points":10,{"rank":4,"team_id":46,"teamName":"Leicester","logo":"https:\/\/media.api-sports.io\/football\/teams\/46.png","forme":"LLWWW","lose":2,"goalsAgainst":8},"goalsDiff":4,"points":9,{"rank":5,"team_id":42,"teamName":"Arsenal","logo":"https:\/\/media.api-sports.io\/football\/teams\/42.png","forme":"LWLWW","description":"Promotion - Europa League (Group Stage)","goalsDiff":2,{"rank":6,"team_id":39,"teamName":"Wolves","logo":"https:\/\/media.api-sports.io\/football\/teams\/39.png","forme":"WWLLW","description":null,"goalsFor":5,"goalsFor":2,"goalsAgainst":3},"goalsDiff":-2,{"rank":7,"team_id":47,"teamName":"Tottenham","logo":"https:\/\/media.api-sports.io\/football\/teams\/47.png","forme":"DWDWL","draw":2,"goalsFor":15,"win":0,"goalsAgainst":5},"points":8,{"rank":8,"team_id":49,"teamName":"Chelsea","logo":"https:\/\/media.api-sports.io\/football\/teams\/49.png","forme":"DWDLW",{"rank":9,"team_id":48,"teamName":"West Ham","logo":"https:\/\/media.api-sports.io\/football\/teams\/48.png","forme":"DWWLL","points":7,{"rank":10,"team_id":63,"teamName":"Leeds","logo":"https:\/\/media.api-sports.io\/football\/teams\/63.png","forme":"LDWWL","goalsFor":9,{"rank":11,"team_id":50,"teamName":"Manchester City","logo":"https:\/\/media.api-sports.io\/football\/teams\/50.png","forme":"WDLW",{"rank":12,"team_id":41,"teamName":"Southampton","logo":"https:\/\/media.api-sports.io\/football\/teams\/41.png","goalsDiff":-1,{"rank":13,"team_id":34,"teamName":"Newcastle","logo":"https:\/\/media.api-sports.io\/football\/teams\/34.png","forme":"LWDLW",{"rank":14,"team_id":52,"teamName":"Crystal Palace","logo":"https:\/\/media.api-sports.io\/football\/teams\/52.png","forme":"DLLWW",{"rank":15,"team_id":33,"teamName":"Manchester United","logo":"https:\/\/media.api-sports.io\/football\/teams\/33.png","forme":"WLWL","goalsAgainst":12},"goalsDiff":-3,"points":6,{"rank":16,"team_id":51,"teamName":"Brighton","logo":"https:\/\/media.api-sports.io\/football\/teams\/51.png","forme":"DLLWL","lose":3,"goalsAgainst":11},"points":4,{"rank":17,"team_id":60,"teamName":"West Brom","logo":"https:\/\/media.api-sports.io\/football\/teams\/60.png","forme":"DLDLL","goalsDiff":-8,"points":2,{"rank":18,"team_id":44,"teamName":"Burnley","logo":"https:\/\/media.api-sports.io\/football\/teams\/44.png","forme":"DLLL","description":"Relegation - Championship","home":{"matchsPlayed":1,"goalsFor":0,"goalsDiff":-5,"points":1,{"rank":19,"team_id":62,"teamName":"Sheffield Utd","logo":"https:\/\/media.api-sports.io\/football\/teams\/62.png","forme":"DLLLL","lose":4,"goalsFor":1,{"rank":20,"team_id":36,"teamName":"Fulham","logo":"https:\/\/media.api-sports.io\/football\/teams\/36.png","lastUpdate":"2020-10-23"}]]}}
我是C#和面向对象编程的新手,但是我很确定是列表“常设”列表使我感到困惑。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。