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

如何解析ActionResult的Value中JSON对象并获取totalCount值?

访问OkObjectResult中的totalCount变量的几种方法

针对你遇到的场景,有以下几种可行的方式来获取totalCount的值:

方法一:使用dynamic类型(快速简便)

将Value声明为dynamic类型,直接通过属性名访问:

IActionResult actionResult = await _controller.List(new CancellationToken());
OkObjectResult okResult = actionResult as OkObjectResult;
dynamic value = okResult.Value;
int totalCount = value.totalCount;

方法二:通过反射获取属性值

如果不想使用dynamic,可以用反射读取属性:

IActionResult actionResult = await _controller.List(new CancellationToken());
OkObjectResult okResult = actionResult as OkObjectResult;
var value = okResult.Value;
int totalCount = (int)value.GetType().GetProperty("totalCount").GetValue(value);

方法三:定义强类型模型(推荐,代码更安全)

最规范的做法是提前定义一个对应返回结果的模型类,让控制器返回该类型的实例,这样可以直接强类型转换:

1. 定义返回模型类

public class ListResponse
{
    public IReadOnlyList<object> List { get; set; } // 替换为你实际的列表元素类型
    public int TotalCount { get; set; }
}

2. 修改控制器方法返回该模型

public async Task<IActionResult> List(CancellationToken cancellationToken)
{
    // 业务逻辑获取数据列表和总数量
    var dataList = GetYourDataList();
    var total = GetTotalCount();
    
    var response = new ListResponse
    {
        List = dataList,
        TotalCount = total
    };
    
    return Ok(response);
}

3. 调用时强类型转换获取值

IActionResult actionResult = await _controller.List(new CancellationToken());
OkObjectResult okResult = actionResult as OkObjectResult;
var response = okResult.Value as ListResponse;
int totalCount = response.TotalCount;

注意:第三种方法在编译期就能检查类型错误,避免运行时异常,是长期维护代码的最优选择。

内容的提问来源于stack exchange,提问作者M Javad Salehi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:07:05