在JSON中引用c#对象
我有两个JSON文件。一个包含球员信息,另一个包含球队信息。在JSON中引用c#对象,c#,json,object,C#,Json,Object,我有两个JSON文件。一个包含球员信息,另一个包含球队信息。 我用C#反序列化了团队JSON文件,并创建了一个团队对象。在player类中,有一个属性“teamassigned”,其中我希望值是我前面创建的团队对象,但我希望将其存储在JSON文件中 驱动程序的JSON { "driverName": "Esyltt Aviars", "teamAssigned": TEAM OBJECT HERE, "
我用C#反序列化了团队JSON文件,并创建了一个团队对象。在player类中,有一个属性“teamassigned”,其中我希望值是我前面创建的团队对象,但我希望将其存储在JSON文件中 驱动程序的JSON
{
"driverName": "Esyltt Aviars",
"teamAssigned": TEAM OBJECT HERE,
"DefendingScore": 47,
"BrakingScore": 80,
"CorneringScore": 38,
"RaceStartScore": 92,
"ConsistencyScore": 74,
"FocusScore": 55
}
团队的JSON
{
"teamID": 1,
"teamName": "Mclaren",
"teamColor": "orange"
}
您可以通过以下方式实现这一点: 您的球员和球队课程为:
public class Team
{
public int teamID { get; set; }
public string teamName { get; set; }
public string teamColor { get; set; }
}
public class Player
{
public string driverName { get; set; }
public Team teamAssigned { get; set; }
public int DefendingScore { get; set; }
public int BrakingScore { get; set; }
public int CorneringScore { get; set; }
public int RaceStartScore { get; set; }
public int ConsistencyScore { get; set; }
public int FocusScore { get; set; }
}
当反序列化这些类的数据时,生成的Json将是:
{
"driverName": "Esyltt Aviars",
"team": {
"teamID": 1,
"teamName": "Mclaren",
"teamColor": "orange"
},
"DefendingScore": 47,
"BrakingScore": 80,
"CorneringScore": 38,
"RaceStartScore": 92,
"ConsistencyScore": 74,
"FocusScore": 55
}
根据需要更新答案
上述两个类Player和Team用于将Json数据反序列化为对象,如下所示:
var objPlayer = JsonConvert.DeserializeObject<Player>(playerJson);
var objTeam = JsonConvert.DeserializeObject<Team>(teamJson);
var objMerged = new Player()
{
driverName = objPlayer.driverName,
teamAssigned = new Team()
{
teamID = objTeam.teamID,
teamName = objTeam.teamName,
teamColor = objTeam.teamColor
},
DefendingScore = objPlayer.DefendingScore,
BrakingScore = objPlayer.BrakingScore,
CorneringScore = objPlayer.CorneringScore,
RaceStartScore = objPlayer.RaceStartScore,
ConsistencyScore = objPlayer.ConsistencyScore,
FocusScore = objPlayer.FocusScore,
};
现在,将此对象“objMerged”序列化为Json,如下所示:
var convertToJson = JsonConvert.SerializeObject(objMerged);
“convertToJson”中的结果Json将符合要求,属性“teamassigned”的值将作为团队对象。如果没有办法,请您建议一些方法来存储类似这样的信息,因为我有大约12个团队和24个驱动程序。您只需使用嵌套的Json对象;让我们看看你的C#类。啊,我想我问的问题不恰当。我已经有了团队对象设置。因为有一个对象。团队对象是从一个单独的json文件反序列化的。是否要在玩家json对象中包含团队json对象,其中团队对象将分配给“teamassigned”?是的。团队json文件在播放器json之前反序列化。@KevTech如果我的答案对您有效,请将其标记为“答案并向上投票”。