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

C# Web API遍历JSON对象数组生成HTML表格问题求助

问题核心原因

  1. 你传入的Submitter数组每个元素仅包含单个属性(要么是Obj1要么是Obj2),你定义的SubmitterObjects模型会自动将不存在的属性赋值为null,这就是输出中出现空<td>的原因。
  2. 你需要先分别提取Obj1和Obj2对应的数组,再按索引配对生成表格行,而非直接遍历Submitter数组。

修正后代码

using Newtonsoft.Json.Linq;

public class TestingController : ControllerBase
{
    public List<JObject> Submitter { get; set; }

    public string POST([FromBody] TestingController data)
    {
        // 提取Obj1对应的字符串数组
        List<string> obj1List = data.Submitter
            .FirstOrDefault(x => x.ContainsKey("Obj1"))?
            .GetValue("Obj1")
            .ToObject<List<string>>() ?? new List<string>();
        
        // 提取Obj2对应的字符串数组
        List<string> obj2List = data.Submitter
            .FirstOrDefault(x => x.ContainsKey("Obj2"))?
            .GetValue("Obj2")
            .ToObject<List<string>>() ?? new List<string>();

        // 取两个数组的最大长度,避免短数组越界
        int maxRowCount = Math.Max(obj1List.Count, obj2List.Count);
        // 拼接表格表头
        string body = "<table><thead><tr><th>Object 1</th><th>Object 2</th></tr></thead><tbody>";

        // 按索引逐行生成表格内容
        for (int i = 0; i < maxRowCount; i++)
        {
            string obj1Val = i < obj1List.Count ? obj1List[i] : string.Empty;
            string obj2Val = i < obj2List.Count ? obj2List[i] : string.Empty;
            body += $"<tr><td>{obj1Val}</td><td>{obj2Val}</td></tr>";
        }

        body += "</tbody></table>";
        return body;
    }
}

实现效果

上述代码运行后返回的HTML表格,完全匹配你需要的展示效果:

Object 1Object 2
testtest3
test2test4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:57:04