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

如何在C#中内联添加JArray内容以构建目标JSON结构?

解决C#内联构建含JArray的JObject匹配目标JSON结构问题

首先看你需要生成的目标JSON:

{ 
  "update": { 
    "comment": [ 
      { 
        "add": { 
          "body": "Bug has been fixed." 
        } 
      } 
    ] 
  }, 
  "fields": { 
    "assignee": { "name": "bob" }, 
    "resolution": { "name": "Fixed" } 
  }, 
  "transition": { "id": "5" } 
}

你当前的C#代码卡在了JArray的内联内容上,其实不用纠结手动构造JArray——Newtonsoft.Json可以自动把匿名数组转换成JArray,用匿名对象嵌套的方式更简洁直观,修改后的代码如下:

// 先确保transition_id已定义,比如string transition_id = "5";
JObject issue_model = JObject.FromObject(new { 
    update = new { 
        comment = new[] { 
            new { 
                add = new { 
                    body = "Bug has been fixed." 
                } 
            } 
        } 
    }, 
    fields = new { 
        assignee = new { name = "bob" },
        resolution = new { name = "Fixed" } 
    }, 
    transition = new { id = transition_id } 
});

关键说明:

  • 用new[] { ... }创建匿名数组,Newtonsoft.Json会自动将其转换为JArray,完全符合目标结构的要求
  • 在数组内直接嵌套匿名对象new { add = new { body = "Bug has been fixed." } },就能生成你需要的comment数组元素结构
  • 补充了目标JSON里的assignee字段,让最终生成的结构和需求完全匹配

如果你确实想手动构造JArray(不推荐,可读性差),也可以这样写:

JObject issue_model = JObject.FromObject(new { 
    update = new { 
        comment = new JArray(
            new JObject(
                new JProperty("add", 
                    new JObject(new JProperty("body", "Bug has been fixed."))
                )
            )
        )
    }, 
    fields = new { 
        assignee = new { name = "bob" },
        resolution = new { name = "Fixed" } 
    }, 
    transition = new { id = transition_id } 
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:18:56