我有以下从 API 接收的 JSON 字符串,它具有不同的属性名称:
{
"countryitems": [
{
"1": {
"ourid": 1,
"title": "AF",
"code": "AF",
"source": "https://localhost:44301/",
"total_cases": 34366,
"total_recovered": 21135,
"total_unresolved": 0,
"total_deaths": 994,
"total_new_cases_today": 0,
"total_new_deaths_today": 0,
"total_active_cases": 0,
"total_serious_cases": 12237
},
"182": {
"ourid": 193,
"title": "NV",
"code": "NV",
"source": "https://localhost:44301/",
"total_cases": 370,
"total_recovered": 350,
"total_unresolved": 0,
"total_deaths": 0,
"total_new_cases_today": 0,
"total_new_deaths_today": 0,
"total_active_cases": 0,
"total_serious_cases": 20
},
"stat": "ok"
}
]
}
映射类:
public class RootObjectCountry
{
public IList<countryitems> countryitems { get; set; }
}
public class countryitems
{
public string stat { get; set; }
public Dictionary<string, Data> results { get; set; }
}
public class Data
{
[JsonProperty(PropertyName = "ourid")]
public int ourid { get; set; }
[JsonProperty(PropertyName = "title")]
public string title { get; set; }
[JsonProperty(PropertyName = "code")]
public string code { get; set; }
[JsonProperty(PropertyName = "total_cases")]
public int total_cases { get; set; }
[JsonProperty(PropertyName = "total_recovered")]
public int total_recovered { get; set; }
[JsonProperty(PropertyName = "total_deaths")]
public int total_deaths { get; set; }
[JsonProperty(PropertyName = "total_new_cases_today")]
public int total_new_cases_today { get; set; }
[JsonProperty(PropertyName = "total_new_deaths_today")]
public int total_new_deaths_today { get; set; }
[JsonProperty(PropertyName = "total_active_cases")]
public int total_active_cases { get; set; }
[JsonProperty(PropertyName = "total_serious_cases")]
public int total_serious_cases { get; set; }
[JsonProperty(PropertyName = "stat")]
public string stat { get; set; }
}
我正在使用上述映射类。由于属性的动态特性,映射无法按预期工作
var jsonString = await httpResponse.Content.ReadAsStringAsync();
var CountryData = JsonConvert.DeserializeObject<RootObjectCountry>(jsonString);
如何反序列化具有不同属性名称的嵌套 JSON?提前致谢