2013-05-14 1 views
0

Я использую asp.net mvc4 и Json.NETdomaintools json deserialize?

и у меня есть JSon структуру как http://api.domaintools.com/v1/domaintools.com/whois/

Как я могу десериализации его в свой собственный класс? Это выглядит немного сложной структурой для меня, чтобы понять, как построить мой класс?

я пытался до сих пор:

var json = "{\"response\":{\"registrant\":\"DomainTools, LLC\",\"registration\":{\"created\":\"1998-08-02\",\"expires\":\"2014-08-01\",\"updated\":\"2010-08-31\",\"registrar\":\"CHEAP-REGISTRAR.COM\",\"statuses\":[\"ok\"]},\"name_servers\":[\"NS1.P09.DYNECT.NET\",\"NS2.P09.DYNECT.NET\",\"NS3.P09.DYNECT.NET\",\"NS4.P09.DYNECT.NET\"],\"whois\":{\"date\":\"2013-05-12\",\"record\":\"Domain name: domaintools.com\\n\\nRegistrant Contact:\\n DomainTools, LLC\\n Domain Administrator ([email protected])\\n +1.2068389035\\n Fax: +1.2068389056\\n 2211 5th Avenue\\n Suite 201\\n Seattle, WA 98121\\n US\\n\\nAdministrative Contact:\\n DomainTools, LLC\\n Domain Administrator ([email protected])\\n +1.2068389035\\n Fax: +1.2068389056\\n 2211 5th Avenue\\n Suite 201\\n Seattle, WA 98121\\n US\\n\\nTechnical Contact:\\n DomainTools, LLC\\n Domain Administrator ([email protected])\\n +1.2068389035\\n Fax: +1.2068389056\\n 2211 5th Avenue\\n Suite 201\\n Seattle, WA 98121\\n US\\n\\n Status: Active\\n Creation Date: 13-Jul-2002\\n Expiration Date: 13-Jul-2016\\n Name Server: NS1.P09.DYNECT.NET\\n Name Server: NS2.P09.DYNECT.NET\\n Name Server: NS3.P09.DYNECT.NET\\n Name Server: NS4.P09.DYNECT.NET\\n\"}}}"; 

public class Response 
    { 
     public string registrant { get; set; } 
     public Registration registration { get; set; } 
     public List<string> name_servers { get; set; } 
     public WhoIs whois { get; set; } 
    } 
    public class Registration 
    { 
     public DateTime created { get; set; } 
     public DateTime expires { get; set; } 
     public DateTime updated { get; set; } 
     public string registrar { get; set; } 
     public List<string> statuses { get; set; } 


    } 
    public class WhoIs 
    { 
     public DateTime date { get; set; } 
     public string record { get; set; } 

    } 
var response = JsonConvert.DeserializeObject<Response>(json); >> null 

ответ

1

Это всегда хорошо, чтобы начать с http://json2csharp.com/ сайта, чтобы найти правильную структуру, для примера это дает:

public class Registration 
{ 
    public string created { get; set; } 
    public string expires { get; set; } 
    public string updated { get; set; } 
    public string registrar { get; set; } 
    public List<string> statuses { get; set; } 
} 

public class Whois 
{ 
    public string date { get; set; } 
    public string record { get; set; } 
} 

public class Response 
{ 
    public string registrant { get; set; } 
    public Registration registration { get; set; } 
    public List<string> name_servers { get; set; } 
    public Whois whois { get; set; } 
} 

public class RootObject 
{ 
    public Response response { get; set; } 
} 

Вы должны использовать RootObject как класс, который вы хотите десериализации:

var response = JsonConvert.DeserializeObject<RootObject>(json); 
+0

вау, превосходный ответ, я не кп ow есть такой инструмент. большое спасибо –