You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 6.0 Web API中Car模型的定义方法咨询

在ASP.NET 6 Core Web API中定义对应Car模型的方法

根据你提供的JavaScript对象结构,我们可以通过嵌套类+字典类型来映射对应的C#模型,同时利用JsonPropertyName特性保证JSON序列化后的键与原JS结构完全匹配。

1. 定义嵌套的Specs类

对应JS里的specs对象:

public class CarSpecs
{
    [JsonPropertyName("transmission")]
    public string Transmission { get; set; }

    [JsonPropertyName("fuelType")]
    public string FuelType { get; set; }

    [JsonPropertyName("numOfSeats")]
    public int NumOfSeats { get; set; }
}

2. 定义Car主类

主类包含所有顶级属性,其中highlights因键为不规则字符串且值类型混合,用Dictionary<string, object>来映射:

using System.Text.Json.Serialization;

public class Car
{
    [JsonPropertyName("make")]
    public string Make { get; set; }

    [JsonPropertyName("model")]
    public string Model { get; set; }

    [JsonPropertyName("price")]
    public decimal Price { get; set; } // 用decimal比int更适合表示价格,避免精度问题

    [JsonPropertyName("rentalType")]
    public string RentalType { get; set; }

    [JsonPropertyName("specs")]
    public CarSpecs Specs { get; set; }

    [JsonPropertyName("imgSrc")]
    public string ImgSrc { get; set; }

    [JsonPropertyName("info")]
    public string Info { get; set; }

    [JsonPropertyName("highlights")]
    public Dictionary<string, object> Highlights { get; set; }
}

关键说明

  • 命名对齐:C#使用帕斯卡命名法,通过JsonPropertyName特性指定JSON序列化后的键名,确保和原JS对象的驼峰/特殊键完全匹配;如果依赖ASP.NET 6默认的驼峰序列化规则,也可以省略该特性,类属性会自动转换为驼峰键。
  • Price类型选择:用decimal替代int更贴合实际价格场景,避免整数无法表示小数金额的问题。
  • Highlights类型选择:由于JS里的highlights键是非标准命名(如"2.0L"、"TOP SPEED")且值类型混合(字符串、数字),Dictionary<string, object>是最灵活的映射方式,序列化后会完整保留原键值对结构。

内容的提问来源于stack exchange,提问作者Niv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:55:07