我想将JSON(使用JSON.NET(反序列化为对象。但不能,因为类名需要以数字开头。
{
"status":"ok",
"meta":{
"count":1
},
"data":{
"7887207":{
"global_rating":9524,
"statistics":{
"random":{
"damage_dealt":54395747,
"wins":17502,
"hits_percents":74,
"battle_avg_xp":797,
"battles":31389
}
},
"last_battle_time":1600087522
}
}
}
如何反序列化这个包含数字的JSON?我尝试使用以下指南(使用JSON.NET对包含数字键的JSON进行沙漠化(
public class MetaGetPlayerStats
{
public int count { get; set; }
}
public class RandomGetPlayerStats
{
public int damage_dealt { get; set; }
public int wins { get; set; }
public int hits_percents { get; set; }
public int battle_avg_xp { get; set; }
public int battles { get; set; }
}
public class StatisticsGetPlayerStats
{
public RandomGetPlayerStats random { get; set; }
}
public class AccountGetPlayerStats
{
public int global_rating { get; set; }
public StatisticsGetPlayerStats statistics { get; set; }
public int last_battle_time { get; set; }
}
public class AccountInfo
{
[JsonProperty("data")]
public Dictionary<int, AccountGetPlayerStats> AccountInfoStats { get; set; }
}
public class GetPlayerStats
{
public string status { get; set; }
public MetaGetPlayerStats meta { get; set; }
public AccountInfo data { get; set; }
}
但它不起作用。它看到了田野";"状态";以及";meta";,但是";数据"==空图像
AccountInfo
过量。data
是一本字典。这会奏效的。
public class GetPlayerStats
{
public string status { get; set; }
public MetaGetPlayerStats meta { get; set; }
public Dictionary<string, AccountGetPlayerStats> data { get; set; }
}
您只需要像这样更改GetPlayerStats类:
public class GetPlayerStats
{
public string status { get; set; }
public MetaGetPlayerStats meta { get; set; }
[JsonProperty("data")]
public Dictionary<string, JObject> AccountInfoStats { get; set; }
// public AccountInfo data { get; set; }
}
然后你可以继续进行逻辑,遵循参考。用"反序列化JSON;"随机";密钥