c# - 在传递给 json 之前从对象中删除字段
问题描述
我有一个与 Jira rest api 一起使用的 Jira 对象;当我只有一个 Jira 项目,因此一组字段来处理这个问题时工作正常,但是现在我有许多具有不同字段的不同项目,我需要能够动态删除某些项目以前不需要的字段我将它传递给 Jira。我知道每个项目可以有一个自定义对象,但我宁愿制作和维护一个包含所有可能项目的单个对象,并在将其传递给 api 之前删除每个项目不需要的东西。
默认字段:
[DataContract]
public class FieldsUpdate
{
[DataMember(Name = "issuetype")]
public Issuetype issuetype;
[DataMember(Name = "project")]
public Project project;
[DataMember(Name = "labels")]
public List<object> labels = new List<object>();
[DataMember(Name = "description")]
public string description;
[DataMember(Name = "summary")]
public string summary;
[DataMember(Name = "customfield_10400")]
public object ExpectedDelDate;
}
上字段级别:
[DataContract]
public class JiraItmAddUpdate
{
[DataMember(Name = "fields")]
public FieldsUpdate fields = new FieldsUpdate();
public JiraItmAddUpdate()
{
FieldsUpdate fields = new FieldsUpdate();
}
}
当前使用示例:
JiraItmAddUpdate JiriUpdateFlds = new JiraItmAddUpdate();
JiriUpdateFlds.fields.summary = "Some Summary";
JiriUpdateFlds.fields.description = "Some Description"
var Request = JiraHttpClient.Client.PutAsJsonAsync(str_IssueKey + "/", JiriUpdateFlds);
这会产生类似的东西
{"fields": {
"summary": "Some Summary",
"description" = "Some Description"
}
}
例如,有时我需要总结的只是摘要,但它必须保留“字段”父级。我看过 ExpandoObject 但似乎无法让它做我想做的事,有人知道我如何发送动态对象而无需为每个 jira 项目构建单独的字段类吗?
解决方案
将 jira 类设为基类并为每个项目继承它。然后,您只需转换为基类。
推荐阅读
- webpack - 如何解决 Create-React-app 项目中的块加载错误?
- python - 如何捕捉终端输出?
- c++ - 我在使用运算符重载时得到垃圾值
- c# - C# 9.0 源代码生成器 - 忽略具有特定属性的类编译
- oracle - 甲骨文解码和 NVL
- android - 数组适配器```getItem(position)```第一次返回null(但在下次检查时工作正常)
- haskell - `stack test` 不从标准输入读取
- html - 如何调整包含绘图的 div 以绘制尺寸,使其不与文档重叠
- python-3.x - 如何通过忽略tkinter中的主窗口来截取屏幕截图?
- python - 如何将 pandas 地理编码功能应用于 Pyspark 列