请看这个json样品
我想在asp.net mvc中为这个json建立一个模型:
{
"MatchStat":{
{
"Corner":[10,3],
"Offside":[2,1],
}
},
"FirstTeamArrange":{
"Tactic":"4-4-2",
"PlayerPos":[0,["PlayerID"],["PlayerID"],["PlayerID"]]
}
"SecondTeamArrange":{
"Tactic":"4-4-2",
"PlayerPos":[0,["PlayerID"],["PlayerID"],["PlayerID"]]
}
}什么是[0,"PlayerID","PlayerID",“PlayerID”?)
它是一种数组吗?
我如何为它编写属性?
这就是我试过的:
public class MatchModel
{
public TeamArrange FirstTeamArrange { get; set; }
public TeamArrange SecondTeamArrange { get; set; }
public MatchStat Stat { get; set; }
public MatchModel()
{
}
public class TeamArrange
{
public String Tactic { get; set; }
public string[,,] PlayerPos { get; set; }????????????????????????????
public TeamArrange()
{
Tactic = "";
PlayerPos=???????????????????????????
}
}
public class MatchStat
{
public int[] Corner { get; set; }
public int[] Offside { get; set; }
public MatchStat()
{
Corner=new int[2];
Offside=new int[2];
}
}
}你能纠正我的错误吗?
我需要写什么而不是问号?
发布于 2018-12-15 10:45:02
您需要一个JToken列表来反序列化PlayerPos密钥数据。
使用下面的类结构可以正确地反序列化您的json。
class Root
{
public Dictionary<string, List<int>> MatchStat { get; set; }
public TeamArrange FirstTeamArrange { get; set; }
public TeamArrange SecondTeamArrange { get; set; }
}
class TeamArrange
{
public string Tactic { get; set; }
public List<JToken> PlayerPos { get; set; }
}使用:
Root root = JsonConvert.DeserializeObject<Root>(json);
foreach (var item in root.FirstTeamArrange.PlayerPos) //foreach (var item in root.SecondTeamArrange.PlayerPos)
{
if (item.Type == JTokenType.Integer)
Console.WriteLine(item.Value<int>());
else
if (item.Type == JTokenType.Array)
{
var arr = item.ToObject<string[]>();
foreach (var innerItem in arr)
Console.WriteLine(innerItem);
}
}
Console.ReadLine();输出:

https://stackoverflow.com/questions/53791439
复制相似问题