在传递给json之前从对象中删除字段

时间:2018-11-05 07:44:51

标签: c# json jira-rest-api

我有一个与Jira rest api一起使用的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"
                }
     }

作为一个例子,有时我需要总结的只是摘要,但它必须保留“ fields”父项。我看过ExpandoObject,但似乎无法让它做我想要的事情,任何人都知道如何在不为每个jira项目构建单独的字段类的情况下发送动态对象?

1 个答案:

答案 0 :(得分:0)

使jira类成为基类,并为每个项目继承它。然后,您只需要转换为基类即可。