json的预期部分,所以为我展示的唯一2名球员是“Marcus 聪明 </跨度> “和”塞迪奥斯曼“。
码:
public void StartingLineups() { upass.upass up = new upass.upass锟“”, “awayTeam”:{ “ID”:“82”, “ 市 </跨度> “:”波士顿“, “名字”:“凯尔特人队”, “缩写”:“BOS” }, “主队”: { “身份证”:“86岁
你在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分配数据源,而只在完成读取所有内容时才分配
你在错误的地方使用你的foreach
foreach (JObject child in obj3["gamestartinglineup"]["teamLineup"])
在这部分代码中,循环只包含2个项目!
“Marcus Smart”和“Cedi Osman”项目是每个项目的第一个参与者
纠正你的foreach循环来解决问题
你的foreach循环正在循环通过团队阵容为游戏阵容。该阵容中只有两支球队。然后你只抓住每支球队中的第一名球员。相关的代码行是
foreach (JObject child in obj3["gamestartinglineup"]["teamLineup"]) { sl.expected = child["expected"]["starter"][0]["player"]["FirstName"].ToString() + " " + child["expected"]["starter"][0]["player"]["LastName"].ToString();
foreach正在循环“teamlineup”的孩子,而且只有两个孩子,两个团队。
该 child["extected"]["starter"][0]["player"] 指定只是为这两支队伍中的每一支队伍提供了第一个首发球员。
child["extected"]["starter"][0]["player"]
如果你想获得每支球队的所有首发球员,你必须在第一支队伍中加入第二个foreach循环,就像这样......
foreach (JObject child in obj3["gamestartinglineup"]["teamLineup"]) { foreach (JObject player in child["expected"]["starter"]) {