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

C#如何将返回JSON的ActionResult<string>转换为List<string>实现遍历

C# ActionResult 转 List 类型转换实现方案

你的伙伴提供的ReadSmb方法返回的是封装了字符串内容的ActionResult<string>,返回值本质是读取到的文件内容或者错误提示文本,要转换为List<string>可以按以下步骤实现:

实现步骤

  • 第一步:从ActionResult<string>中提取实际返回的字符串内容
  • 第二步:根据返回内容的格式,选择JSON反序列化或者按换行符拆分,得到List<string>
  • 第三步:遍历集合处理业务逻辑

代码实现(基于System.Text.Json,ASP.NET Core默认内置)

using System.Text.Json;
using Microsoft.AspNetCore.Mvc;

// 调用方法获取返回值
ActionResult<string> test = ReadSmb("服务器地址", "共享名", "文件路径", "用户名", "密码");

// 提取返回的原始字符串
string responseContent = test.Value ?? string.Empty;
List<string> list = new List<string>();

try
{
    // 情况1:返回内容是JSON数组格式,直接反序列化
    list = JsonSerializer.Deserialize<List<string>>(responseContent) ?? new List<string>();
}
catch (JsonException)
{
    // 情况2:返回内容是多行纯文本/错误提示,按换行符拆分
    list = responseContent.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries).ToList();
}

// 遍历处理业务逻辑
foreach (var item in list)
{
    // 你的业务处理代码
}

代码实现(基于Newtonsoft.Json)

如果你的项目使用Newtonsoft.Json作为序列化组件,把反序列化部分替换为以下代码即可:

using Newtonsoft.Json;

list = JsonConvert.DeserializeObject<List<string>>(responseContent) ?? new List<string>();

注意事项

  • 如果ReadSmb返回的是连接失败、登录失败等错误提示,反序列化JSON会失败,走换行符拆分逻辑也可以拿到错误信息做异常处理
  • 如果读取的文件本身是每行一条数据的纯文本,不需要走JSON反序列化,直接按换行符拆分即可得到目标集合

内容的提问来源于stack exchange,提问作者Bình Chu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:36:04