在JSON响应中指定类类型

enf*_*rge 6 c# json asp.net-web-api

我已经构建了一个返回JSON的基本c#webapi应用程序.

我的系统会有很多课程,我会用汽车作为例子.

我有一个名为Car的抽象类,有许多不同类型的汽车从汽车继承.例如卡车,轿车,豪华轿车,推土机,救护车等.这些都有一些额外的属性.

我的应用程序中的所有内容都按预期工作,但当我查询/ api/Cars /并取回所有汽车时,我可能会得到以下内容:

{
    "Id": 6290,
    "Make": "GM",
    "Model": "Yukon",
    "Seats": 7
},
{
    "Id": 6291,
    "Make": "Caterpillar",
    "Model": "D11T",
    "BucketWidth": 14.5
},
{
    "Id": 6292,
    "Make": "Braun",
    "Model": "Express",
    "Siren": "ACME"
}
Run Code Online (Sandbox Code Playgroud)

所以,作为消费这个的人,他们怎么知道第一个项目是SUV,第二个是推土机,第三个是救护车?

我是否将一个属性添加到名为"CarType"的基类中,它们会有条件地将它映射到它们末尾的类?

Fer*_*mín 1

您可以使用 DTO 模式合并想要从 Web API 向客户端公开的所有属性。

对于你的情况可以这样做: 1- 创建一个 CarDto 类(如果您愿意,可以使用其他名称),其中包含您想要公开的所有属性 2- 创建一个 CarDto 类型的列表,该列表将填充您的数据 3- 替换您的汽车结果与汽车 dto 结果相同。

我希望这会对您有所帮助。