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

ASP.NET Core Web API返回含List的对象时List字段缺失求助

问题原因及解决办法:List字段未在ASP.NET Core Web API返回结果中序列化

问题根源

ASP.NET Core默认使用System.Text.Json作为JSON序列化器,其默认配置仅序列化类的属性(带get/set访问器的成员),而你的RuleViewDTO中的Formulas是一个公共字段(field),没有定义属性访问器,因此不会被序列化到返回的JSON中。

解决办法

办法1:将字段改为属性(推荐)

这是符合C#封装规范的常规做法,直接给Formulas添加get/set访问器,将其改为属性:

public class RuleViewDTO
{
    // 原有成员保持不变...

    // 改为属性,添加get/set访问器
    public List<ViewParam> Formulas { get; set; } = new List<ViewParam>(); 
}

修改后重新运行接口,Postman返回的JSON中就会包含Formulas列表数据。

办法2:配置序列化器支持字段序列化

如果因特殊需求必须保留字段形式,可以在项目配置中修改System.Text.Json的序列化选项,允许序列化公共字段:
在Program.cs中更新服务配置:

builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        // 开启公共字段的序列化支持
        options.JsonSerializerOptions.IncludeFields = true;
    });

此配置会让序列化器处理所有类的公共字段,无需修改RuleViewDTO的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 06:44:52