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

如何在ASP.NET Core控制器中读取JSON获取request_id字段值

实现方法

你只需要对接口返回的JSON字符串做解析,就能提取request_id字段赋值给ReqID变量,以下是两种常用实现方式:


方式1:强类型反序列化(推荐,可维护性高)

首先定义和接口返回结构匹配的响应模型:

public class SmsProviderResponse
{
    [System.Text.Json.Serialization.JsonPropertyName("request_id")]
    public string RequestId { get; set; }
    [System.Text.Json.Serialization.JsonPropertyName("number")]
    public string Number { get; set; }
    [System.Text.Json.Serialization.JsonPropertyName("price")]
    public decimal Price { get; set; }
}

修改你的控制器逻辑,在拿到接口响应后反序列化取值即可:

public async Task<ActionResult> RequestAuthenticate() 
{
    var client = new RestClient("https://api.mysmsprovider.com/v1/verify");
    var request = new RestRequest("",Method.Post);
    request.AddHeader("Accept", "application/json");
    request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
    request.AddParameter("application/x-www-form-urlencoded", "api_secret=123M&api_key=84545&code_length=4&from=NBL&to=90000001", ParameterType.RequestBody);

    // 注意:你方法标记了async,这里建议用异步执行方法,避免阻塞线程
    RestResponse response = await client.ExecuteAsync(request);

    // 反序列化响应内容
    var responseData = System.Text.Json.JsonSerializer.Deserialize<SmsProviderResponse>(response.Content);
    // 赋值给目标字符串变量,加空判断避免异常
    string ReqID = responseData?.RequestId ?? string.Empty;

    // 后续可自行编写ReqID相关的业务逻辑,示例是返回ReqID和原始响应
    return Ok(new { ReqID, OriginResponse = response.Content });
}

方式2:轻量节点解析(无需额外定义类)

如果不想单独建响应模型,可以直接通过JSON DOM解析提取字段:

// 在获取到response之后添加以下代码
using var jsonDoc = System.Text.Json.JsonDocument.Parse(response.Content);
string ReqID = jsonDoc.RootElement.TryGetProperty("request_id", out var reqIdEl) 
    ? reqIdEl.GetString() ?? string.Empty 
    : string.Empty;

注意事项

  • 解析时建议加空值/字段存在性校验,避免接口返回异常格式时触发空引用、字段不存在的运行时错误
  • 如果你项目用的是Newtonsoft.Json做序列化,替换对应序列化/解析的API即可,逻辑完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:06:26