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

C# 从Web响应中提取指定ticket number的最优实现方法

C# API响应工单号提取实现方案

优先选择JSON解析方案,稳定性更高,适配后续字段格式调整,不会误匹配其他含number的字段。

方案1:JSON反序列化(优先推荐)

.NET Core 3.0+ / .NET 5+ 版本(内置System.Text.Json库,无需额外安装)

首先定义极简的响应实体类:

// 仅需定义需要提取的字段,其余返回字段会自动忽略
public class TicketApiResponse
{
    public int number { get; set; }
}

替换注释处的提取逻辑:

var result = streamReader.ReadToEnd();
var response = System.Text.Json.JsonSerializer.Deserialize<TicketApiResponse>(result);
string ticketNum = response.number.ToString();

.NET Framework版本

可使用Newtonsoft.Json(Json.NET)实现,逻辑和上述一致:

var result = streamReader.ReadToEnd();
var response = Newtonsoft.Json.JsonConvert.DeserializeObject<TicketApiResponse>(result);
string ticketNum = response.number.ToString();

方案2:正则表达式匹配(轻量场景可选)

无需定义类和引入第三方库,适配所有.NET版本,可精准匹配完整"number":键,不会误匹配number_of_comments等其他字段,且自动适配工单号位数扩容。
首先引入正则命名空间:

using System.Text.RegularExpressions;

替换注释处的提取逻辑:

var result = streamReader.ReadToEnd();
// 兼容冒号前后存在空格的场景
Match match = Regex.Match(result, @"""number""\s*:\s*(\d+)");
if (match.Success)
{
    string ticketNum = match.Groups[1].Value;
    // 此处可添加工单号留存逻辑
}
else
{
    // 此处可添加匹配失败的异常处理逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:39:01