繁体   English   中英

C#为REST Api调用创建JSON

[英]C# create JSON for REST Api call

我正在尝试使用C#中的POST在Jira中创建问题。 调用返回此JSON:

{
   "fields": {
      "project":
      {
         "key": "BBR"
      },
      "summary": "REST ye merry gentlemen.",
      "description": "Creating of an issue using project keys and issue type names using the REST API",
      "issuetype": {
         "name": "Story"
      }
  }
}

我想用C#实现一个方法,所以我创建了类JiraCreateIssueResponse:

{
        public List<string> Project { get; set; } = new List<string>();
        public string Summary { get; set; }
        public string Description { get; set; }
        public List<string> IssueType { get; set; } = new List<string>();
    }

在下面的方法中,我尝试使用给定的参数进行具体调用:

JiraCreateIssueResponse JiraIssueParams = new JiraCreateIssueResponse
            {
                Project = { $"key = {ProjectKey}" },
                Summary = summary,
                Description = "",
                IssueType = { $"name = Story" }
            };

            RestRequest restRequest = GetRestRequest(Method.POST, $"{JiraConstants.Urls.Issue}", JiraIssueParams, null);

但是,我实现了一个验证此方法的测试,并且给了我有关反序列化的错误,因此我得出结论,我没有很好地解析JSON。 有谁知道我的错误吗? 我尝试了其他方式来实现JSON和使用值,但是我遇到了同样的问题。

您的课程应如下所示:

public class JiraResponse
{
    public class JiraResponseProject
    {
        public string Key { get; set; }
    }

    public class JiraResponseIssueType
    {
        public string Name { get; set; }
    }

    private JiraResponseProject _project = new JiraResponseProject();
    private JiraResponseIssueType _issueType = new JiraResponseIssueType();

    public JiraResponseProject Project => _project;
    public JiraResponseIssueType IssueType => _issueType;

    public string Summary { get; set; }
    public string Description { get; set; }    
}

由于我无法发表评论,并且我们也使用Jira并利用了API,因此,这里有用于c#的API的现有包装器: https : //www.nuget.org/packages/Atlassian.SDK/,这将为您节省很多工作-绝对是为我做的。

托管项目站点: 在bitbucket上

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM