Как создать древовидную структуру в C # при десериализации Json для объекта? - PullRequest
0 голосов
/ 14 января 2019

Я новичок в c # и wpf. Я успешно десериализировать данные JSON в объект с помощью Restsharp.

В настоящее время мои данные json возвращаются, когда вызов метода GET выглядит примерно так:

{  
   "elements":[  
      {  
         "id":1,
         "subject":"New website",
         "_links":{  
            "children":[  
               {  
                  "href":"/api/v3/work_packages/6",
                  "title":"New landing page"
               },
               {  
                  "href":"/api/v3/work_packages/4",
                  "title":"Newsletter registration form"
               },
               {  
                  "href":"/api/v3/work_packages/5",
                  "title":"Implement product tour"
               }
            ]
         }
      },
      {  
         "id":6,
         "subject":"New landing page",
         "_links":{  
            "ancestors":[  
               {  
                  "href":"/api/v3/work_packages/3",
                  "title":"New website"
               }
            ]
         }
      }
   ]
}

   and more

Итак, мой вопрос в том, как поместить его в шаблон в виде дерева?

public class Outer
    {
        public List<RootObjectForAncestor> elements { get; set; }
        public List<RootObjectForChild> elements { get; set; }
    }
public class RootObjectForAncestor
    {
        public string id { get; set; }
        public string subject { get; set; }
        public LinksChild _links { get; set; }
    }
public class LinksChild
    {
        public List<Child> children { get; set; }
    }
public class Child
    {
        public string href { get; set; }
        public string title { get; set; }
    }
####and this below for the child class #####
public class RootObjectForChild
    {
        public int id { get; set; }
        public string subject { get; set; } 
        public LinksAncestor _links { get; set; }
    }

public class Ancestor
    {
        public string href { get; set; }
        public string title { get; set; }
    }
public class LinksAncestor
    {
        public List<Ancestor> ancestors { get; set; }
    }

Моя функция для получения нормального метода get выглядит следующим образом

        var client = new RestClient("my endpoint");
        client.Authenticator = newHttpBasicAuthenticator("apikey","myapikey");

        var request = new RestSharp.RestRequest("api/v3/projects/1/work_packages", Method.GET);
        IRestResponse response = client.Execute(request);
        var obj = JsonConvert.DeserializeObject<Outer>(response.Content);

Итак, вопрос в том, как мне поместить эти привязки в древовидную структуру?

...