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

能否用C#强类型类生成Redactor多图上传所需返回JSON?

用C#强类型类生成Redactor多图上传所需JSON格式

当然可以!用强类型类替代StringBuilder拼接JSON不仅更易维护,还能避免手动拼接时容易出现的语法错误,完全适配Redactor编辑器的多图上传返回格式要求。

步骤1:定义强类型实体类

首先我们需要匹配JSON结构定义两个类:一个用于表示单个上传文件的信息,另一个用字典来承载多个文件(因为Redactor期望的顶级键是file-0、file-1这种动态命名的)。

注意Redactor要求JSON键是小写的,所以我们可以用JsonProperty特性来对齐C#命名规范和JSON键名:

using Newtonsoft.Json;

// 单个文件的信息类
public class RedactorFileItem
{
    [JsonProperty("url")]
    public string Url { get; set; }

    [JsonProperty("id")]
    public string Id { get; set; }
}

步骤2:构建返回结果并序列化

接下来,我们可以把上传后的文件信息整理到字典中,直接通过Json()方法返回即可,框架会自动帮我们序列化为符合要求的JSON格式:

// 假设这是你处理完上传后得到的文件列表(实际业务中替换为你的上传逻辑)
var uploadedFiles = new List<(string FileUrl, string FileId)>
{
    ("/tmp/images/b047d39707366f0b3db9985f97a56267.jpg", "70e8f28f4ce4a338e12693e478")
    // 如果有多张图,直接在这里添加更多项即可
};

// 构建Redactor要求的字典结构
var redactorResult = new Dictionary<string, RedactorFileItem>();
for (int i = 0; i < uploadedFiles.Count; i++)
{
    var file = uploadedFiles[i];
    redactorResult.Add($"file-{i}", new RedactorFileItem
    {
        Url = file.FileUrl,
        Id = file.FileId
    });
}

// 返回JSON(ASP.NET MVC中用这个,ASP.NET Core可省略JsonRequestBehavior.AllowGet)
return Json(redactorResult, JsonRequestBehavior.AllowGet);

关键说明

  • 字典Dictionary<string, RedactorFileItem>序列化后,会自动把字典的键(比如file-0)作为JSON的顶级属性名,值则序列化为包含url和id的对象,完美匹配你需要的格式。
  • 如果使用ASP.NET Core,JsonRequestBehavior.AllowGet已经被移除,直接写return Json(redactorResult);即可。
  • 强类型的优势在于编译时就能检查属性是否正确,避免手动拼接字符串时的引号遗漏、逗号错误等问题,后期维护也更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:24:23