无法在C#中解析JSON响应

Als*_*ony 2 c# json json.net

我试图解析一个whois json响应,但是当我尝试解析它时,我得到空值.

string html;
string whoisUrl = "https://whois.apitruck.com/:google.com";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(whoisUrl);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.ASCII))
    {
        html = reader.ReadToEnd();
    }
}
Class1 m = JsonConvert.DeserializeObject<Class1>(html);
MessageBox.Show(m.created);
Run Code Online (Sandbox Code Playgroud)

宾语

class Class1
{
    public string created { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

谁能指出我在这里做错了什么?

Jas*_*n W 6

Class1没有获得该值,因为"created"是"响应"的一部分,而不是JSON响应的根级别.

您需要使用dynamic或创建类的层次结构以进行简单修复.

class Class1
{
    public Response Response { get; set; }
}

class Response
{
    public string created { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用这个:

Class1 m = JsonConvert.DeserializeObject<Class1>(html);
MessageBox.Show(m.Response.created);
Run Code Online (Sandbox Code Playgroud)

UPDATE

另外,这是一个如何使用的示例dynamic:

var m = JsonConvert.DeserializeObject<dynamic>(html);
DateTime created = (DateTime)m.response.created;
Run Code Online (Sandbox Code Playgroud)