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

C#中通过WebResponse获取JSON响应特定Display字段问题

解决从WebResponse的JSON中提取Display字段的问题

嘿,我懂你现在的困扰——音频转文本功能已经跑通了,但就是没法把返回结果里的Display字段单独拎出来放到文本框里对吧?咱们一步步来搞定这个事儿。

首先,核心问题应该是没有正确解析返回的JSON响应,所以咱们先从读取响应内容开始,再一步步提取目标字段。

第一步:读取WebResponse的JSON内容

首先得把WebResponse里的数据流转换成字符串,这样才能后续解析:

using (var response = (HttpWebResponse)request.GetResponse())
using (var stream = response.GetResponseStream())
using (var reader = new StreamReader(stream))
{
    // 把响应流读取成完整的JSON字符串
    string jsonResponse = reader.ReadToEnd();
    
    // 接下来在这里解析JSON,提取Display字段
}

第二步:解析JSON并提取Display字段

这里有两种常用的解析方式,你可以根据自己的需求选:

方式一:强类型解析(推荐,更安全)

先定义一个和返回JSON结构完全匹配的类,这样反序列化后就能直接通过属性访问字段:

// 定义和JSON结构对应的类
public class SpeechRecognitionResult
{
    public string RecognitionStatus { get; set; }
    public string Duration { get; set; }
    public string Display { get; set; }
    public string Offset { get; set; }
}

然后根据你用的.NET版本选择反序列化方法:

// 如果是.NET Core/.NET 5+,用自带的System.Text.Json
var recognitionResult = JsonSerializer.Deserialize<SpeechRecognitionResult>(jsonResponse);

// 如果是.NET Framework,推荐用Newtonsoft.Json(需要先通过NuGet安装)
// var recognitionResult = JsonConvert.DeserializeObject<SpeechRecognitionResult>(jsonResponse);

// 把Display字段赋值到文本框,加个空值判断避免报错
yourTextBox.Text = recognitionResult?.Display ?? "未识别到有效内容";

方式二:动态解析(快速测试用)

如果不想定义类,可以用动态类型直接访问字段:

// System.Text.Json方式
using JsonDocument doc = JsonDocument.Parse(jsonResponse);
JsonElement root = doc.RootElement;
string displayText = root.GetProperty("Display").GetString();

// Newtonsoft.Json方式
dynamic result = JsonConvert.DeserializeObject(jsonResponse);
string displayText = result.Display;

// 赋值到文本框
yourTextBox.Text = displayText ?? "未识别到有效内容";

可能踩坑的地方要注意

  • 字段大小写匹配:确保你代码里访问的字段名和JSON里的Display完全一致(大小写不能错);
  • 是否是数组结构:如果返回的JSON是一个结果数组(比如[{...}, {...}]),那你需要把反序列化改成List<SpeechRecognitionResult>,然后取第一个元素的Display:
    var results = JsonSerializer.Deserialize<List<SpeechRecognitionResult>>(jsonResponse);
    yourTextBox.Text = results?.FirstOrDefault()?.Display ?? "未识别到有效内容";
    
  • JSON库引用:如果用Newtonsoft.Json,记得先在NuGet里安装Newtonsoft.Json包;System.Text.Json是.NET Core及以上版本自带的,无需额外安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:56:20