如何从Web API返回的字符串中提取refno、status和deldate的值?
提取Query String风格字符串的字段值
以下是几种主流编程语言的实现方案,直接针对你的需求提取refno、status和deldate的值:
C# 实现
方法1:使用内置解析工具
如果是.NET Framework,引用System.Web命名空间;如果是.NET Core/.NET 5+,引用Microsoft.AspNetCore.WebUtilities命名空间,用成熟的工具类解析:
// .NET Framework 版本 using System.Web; string res = "refno=11111&status=0&deldate=2023-07-16"; var queryParams = HttpUtility.ParseQueryString(res); string refno = queryParams["refno"]; // 结果:"11111" string status = queryParams["status"]; // 结果:"0" string deldate = queryParams["deldate"]; // 结果:"2023-07-16"
// .NET Core/.NET 5+ 版本 using Microsoft.AspNetCore.WebUtilities; string res = "refno=11111&status=0&deldate=2023-07-16"; QueryHelpers.ParseQuery(res).TryGetValue("refno", out var refno); QueryHelpers.ParseQuery(res).TryGetValue("status", out var status); QueryHelpers.ParseQuery(res).TryGetValue("deldate", out var deldate); // 取值时可通过refno.ToString()获取字符串
方法2:手动分割(无外部依赖)
如果不想引入额外命名空间,可手动分割字符串(注意:仅适用于字段值不含=的场景):
string res = "refno=11111&status=0&deldate=2023-07-16"; var keyValueDict = res.Split('&') .Select(pair => pair.Split('=')) .ToDictionary(arr => arr[0], arr => arr[1]); string refno = keyValueDict["refno"]; string status = keyValueDict["status"]; string deldate = keyValueDict["deldate"];
Python 实现
方法1:使用内置解析工具
from urllib.parse import parse_qs res = "refno=11111&status=0&deldate=2023-07-16" params = parse_qs(res) refno = params["refno"][0] # parse_qs返回列表,取第一个元素 status = params["status"][0] deldate = params["deldate"][0]
方法2:手动分割
res = "refno=11111&status=0&deldate=2023-07-16" key_value_dict = dict(pair.split('=') for pair in res.split('&')) refno = key_value_dict["refno"] status = key_value_dict["status"] deldate = key_value_dict["deldate"]
JavaScript 实现
方法1:使用URLSearchParams
const res = "refno=11111&status=0&deldate=2023-07-16"; const params = new URLSearchParams(res); const refno = params.get("refno"); // 结果:"11111" const status = params.get("status"); // 结果:"0" const deldate = params.get("deldate"); // 结果:"2023-07-16"
方法2:手动分割
const res = "refno=11111&status=0&deldate=2023-07-16"; const keyValueObj = res.split('&').reduce((acc, pair) => { const [key, value] = pair.split('='); acc[key] = value; return acc; }, {}); const refno = keyValueObj.refno; const status = keyValueObj.status; const deldate = keyValueObj.deldate;
内容的提问来源于stack exchange,提问作者Don2
相关产品推荐
相关产品推荐

