c# - 如何反序列化 JSON 对象,将其属性分组为 .NET Core 中的不同类型?
问题描述
我想从外部 api 检索一些足球数据。来自请求的响应返回我“团队”表,如下所示:
"teams": [
{
"team_id": 2,
"name": "France",
"code": null,
"logo": null,
"country": "France",
"is_national": true,
"founded": 1919,
"venue_name": "Stade de France",
"venue_surface": "grass",
"venue_address": "Rue Jules Rimet, Saint-Denis",
"venue_city": "Paris",
"venue_capacity": 81338
},
.....
该团队包含 5 个场地字段,我想将它们分组到团队聚合的另一个类中。这是代码:
public class TeamEntity
{
[Key]
public int TeamId { get; set; }
[Required]
[MaxLength(100)]
public string Name { get; set; }
[MaxLength(10)]
[Column(TypeName = "varchar(10)")]
public string Code { get; set; }
[Required]
[MaxLength(300)]
public string Logo { get; set; }
[Required]
[MaxLength(100)]
public string Country { get; set; }
public string IsNational { get; set; }
[Required]
public int Founded { get; set; }
[Required]
public VenueEntity Venue { get; set; }
[ForeignKey("Venue")]
public int VenueId { get; set; }
public LeagueEntity League { get; set; }
[ForeignKey("League")]
public int LeagueId { get; set; }
}
public class VenueEntity
{
[Key]
public int VenueId { get; set; }
[Required]
[MaxLength(200)]
public string VenueName { get; set; }
[Required]
[MaxLength(100)]
public string VenueSurface { get; set; }
[Required]
[MaxLength(200)]
public string VenueAddress { get; set; }
[Required]
[MaxLength(100)]
public string VenueCity { get; set; }
[Required]
public int VenueCapacity { get; set; }
[Required]
public TeamEntity Team { get; set; }
[ForeignKey("Team")]
public int TeamId { get; set; }
}
当我试图反序列化它时,我得到一个错误。我使用调试器检查了反序列化后 TeamEntity 类中的 Venue 字段为空。有没有办法使用 Newtonsoft.Json.JsonConverter 正确反序列化对象?谢谢你的帮助。
解决方案
推荐阅读
- git - 如何从 Jenkins 多分支管道进行 Git 和 Docker 标记
- c# - 根据选择的年份和月份计算月份的天数
- delphi - 将字符串转换为 TXSDecimal
- qml - 如何对 QML TreeView 中的行应用不同的样式
- java - 将 Java 应用程序侦听从 0.0.0.0 更改为 127.0.0.1 - JMX
- java - java中类之间的所有者关系
- batch-file - 我无法运行此批处理脚本,它在第一个命令后停止
- javascript - 将脚本用作 ES6 模块会导致无 undef 警告
- python - Python为后续函数调用设置参数值
- python - 如何让我的 Twisted 'reactor' 停止?