gpt4 book ai didi

C# foreach 循环仅在整个 json 文件中显示 2 个结果

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:38 26 4
gpt4 key购买 nike

我需要将 JSON 文件中每个玩家的名字和姓氏填充到数据 GridView 中。一切正常,除了我在 dgv 中只有 2 个玩家。两位玩家都在 json 的预期部分之后,所以为我展示的仅有的 2 位玩家是“Marcus Smart”和“Cedi Osman”。

代码:

    public void StartingLineups()
{
upass.upass up = new upass.upass();
string address3 = "https://api.mysportsfeeds.com/v1.1/pull/nba/2017-2018-regular/game_startinglineup.json?gameid=" + dateTimePicker1.Text + comboBox2.Text;

var w3 = new WebClient();
w3.UseDefaultCredentials = true;
w3.Credentials = new NetworkCredential(up.username, up.password);
var result3 = w3.DownloadString(address3);

var obj3 = JObject.Parse(result3);


dt.Columns.Add("Projected Lineup", typeof(string));
StartingLineup.startinglineup sl = new StartingLineup.startinglineup();


foreach (JObject child in obj3["gamestartinglineup"]["teamLineup"])

{

sl.expected = child["expected"]["starter"][0]["player"]["FirstName"].ToString() + " " + child["expected"]["starter"][0]["player"]["LastName"].ToString();
DataRow row = dt.NewRow();
dataGridView1.DataSource = dt;
row["Projected Lineup"] = sl.expected;
dt.Rows.Add(row);

}

}

JSON:

{
"gamestartinglineup": {
"lastUpdatedOn": "2017-10-17 12:56:32 PM",
"game": {
"id": "42070",
"date": "2017-10-17",
"time": "8:00PM",
"awayTeam": {
"ID": "82",
"City": "Boston",
"Name": "Celtics",
"Abbreviation": "BOS"
},
"homeTeam": {
"ID": "86",
"City": "Cleveland",
"Name": "Cavaliers",
"Abbreviation": "CLE"
},
"location": "Quicken Loans Arena"
},
"teamLineup": [
{
"team": {
"ID": "82",
"City": "Boston",
"Name": "Celtics",
"Abbreviation": "BOS"
},
"expected": {
"starter": [
{
"position": "Bench8",
"player": {
"ID": "9102",
"LastName": "Smart",
"FirstName": "Marcus",
"JerseyNumber": "36",
"Position": "PG"
}
},
{
"position": "Starter1",
"player": {
"ID": "9506",
"LastName": "Hayward",
"FirstName": "Gordon",
"JerseyNumber": "20",
"Position": "SF"
}
},
{
"position": "Starter2",
"player": {
"ID": "10090",
"LastName": "Brown",
"FirstName": "Jaylen",
"JerseyNumber": "7",
"Position": "SF"
}
},
{
"position": "Starter5",
"player": {
"ID": "9082",
"LastName": "Horford",
"FirstName": "Al",
"JerseyNumber": "15",
"Position": "C"
}
},
{
"position": "Starter3",
"player": {
"ID": "9157",
"LastName": "Irving",
"FirstName": "Kyrie",
"JerseyNumber": "11",
"Position": "PG"
}
},
{
"position": "Starter4",
"player": {
"ID": "13730",
"LastName": "Tatum",
"FirstName": "Jayson",
"JerseyNumber": "0",
"Position": "F"
}
},
{
"position": "Bench1",
"player": {
"ID": "13775",
"LastName": "Ojeleye",
"FirstName": "Semi",
"JerseyNumber": "37",
"Position": "PF"
}
},
{
"position": "Bench2",
"player": {
"ID": "13778",
"LastName": "Yabusele",
"FirstName": "Guerschon",
"JerseyNumber": "30",
"Position": "PF"
}
},
{
"position": "Bench3",
"player": {
"ID": "13770",
"LastName": "Nader",
"FirstName": "Abdel",
"JerseyNumber": "28",
"Position": "SF"
}
},
{
"position": "Bench4",
"player": {
"ID": "9105",
"LastName": "Rozier",
"FirstName": "Terry",
"JerseyNumber": "12",
"Position": "PG"
}
},
{
"position": "Bench5",
"player": {
"ID": "9211",
"LastName": "Baynes",
"FirstName": "Aron",
"JerseyNumber": "12",
"Position": "C"
}
},
{
"position": "Bench6",
"player": {
"ID": "9120",
"LastName": "Larkin",
"FirstName": "Shane",
"JerseyNumber": "8",
"Position": "PG"
}
},
{
"position": "Bench7",
"player": {
"ID": "13777",
"LastName": "Theis",
"FirstName": "Daniel",
"JerseyNumber": "27",
"Position": "PF"
}
}
]
},
"actual": null
},
{
"team": {
"ID": "86",
"City": "Cleveland",
"Name": "Cavaliers",
"Abbreviation": "CLE"
},
"expected": {
"starter": [
{
"position": "Bench8",
"player": {
"ID": "13780",
"LastName": "Osman",
"FirstName": "Cedi",
"JerseyNumber": "16",
"Position": "SF"
}
},
{
"position": "Starter1",
"player": {
"ID": "9315",
"LastName": "Wade",
"FirstName": "Dwyane",
"JerseyNumber": "9",
"Position": "SG"
}
},
{
"position": "Starter2",
"player": {
"ID": "9158",
"LastName": "James",
"FirstName": "LeBron",
"JerseyNumber": "23",
"Position": "SF"
}
},
{
"position": "Starter5",
"player": {
"ID": "9161",
"LastName": "Love",
"FirstName": "Kevin",
"JerseyNumber": "0",
"Position": "PF"
}
},
{
"position": "Starter3",
"player": {
"ID": "9142",
"LastName": "Rose",
"FirstName": "Derrick",
"JerseyNumber": "1",
"Position": "PG"
}
},
{
"position": "Starter4",
"player": {
"ID": "9107",
"LastName": "Crowder",
"FirstName": "Jae",
"JerseyNumber": "99",
"Position": "SF"
}
},
{
"position": "Bench1",
"player": {
"ID": "9162",
"LastName": "Shumpert",
"FirstName": "Iman",
"JerseyNumber": "4",
"Position": "SG"
}
},
{
"position": "Bench2",
"player": {
"ID": "9169",
"LastName": "Thompson",
"FirstName": "Tristan",
"JerseyNumber": "13",
"Position": "PF"
}
},
{
"position": "Bench3",
"player": {
"ID": "9167",
"LastName": "Smith",
"FirstName": "J.R.",
"JerseyNumber": "5",
"Position": "SG"
}
},
{
"position": "Bench4",
"player": {
"ID": "9089",
"LastName": "Korver",
"FirstName": "Kyle",
"JerseyNumber": "26",
"Position": "SG"
}
},
{
"position": "Bench5",
"player": {
"ID": "9271",
"LastName": "Green",
"FirstName": "Jeff",
"JerseyNumber": "32",
"Position": "SF"
}
},
{
"position": "Bench6",
"player": {
"ID": "9159",
"LastName": "Frye",
"FirstName": "Channing",
"JerseyNumber": "9",
"Position": "C"
}
},
{
"position": "Bench7",
"player": {
"ID": "9370",
"LastName": "Calderon",
"FirstName": "Jose",
"JerseyNumber": "29",
"Position": "PG"
}
}
]
},
"actual": null
}
]
}
}

最佳答案

timelineup 元素上的循环不足以列出您团队中的球员。你需要一个内循环

foreach (JObject child in obj3["gamestartinglineup"]["teamLineup"])
{
foreach (JObject sub in child["expected"]["starter"])
{
var expected = sub["player"]["FirstName"].ToString() + " " + sub["player"]["LastName"].ToString();
DataRow row = dt.NewRow();
row["Projected Lineup"] = expected;
dt.Rows.Add(row);
}
}

也不要在循环内为 gridview 分配数据源,而是仅当您完成读取所有内容时才分配数据源

关于C# foreach 循环仅在整个 json 文件中显示 2 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46799576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com