我试图解析一个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)
谁能指出我在这里做错了什么?
您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)
| 归档时间: |
|
| 查看次数: |
714 次 |
| 最近记录: |