无法在C#中解析JSON响应

时间:2015-09-25 03:01:44

标签: 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);

对象

class Class1
{
    public string created { get; set; }
}

任何人都可以在这里指出我做错了什么吗?

2 个答案:

答案 0 :(得分:6)

您的long无法获得自&#34;创建后的价值&#34;是&#34;响应的一部分&#34;而不是JSON响应的根级别。

您需要使用Class1或为类创建层次结构以进行简单修复。

dynamic

然后你可以使用它:

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

class Response
{
    public string created { get; set; }
}

<强>更新

此外,以下是如何使用Class1 m = JsonConvert.DeserializeObject<Class1>(html); MessageBox.Show(m.Response.created);

的示例
dynamic

答案 1 :(得分:3)

将json转换为.net类有很好的app

HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: 101
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: null
Set-Cookie: io=3Z_TCqv9LKKXcWCjAAAD
Date: Fri, 25 Sep 2015 02:55:51 GMT
Connection: keep-alive

....0{"sid":"3Z_TCqv9LKKXcWCjAAAD","upgrades":    ["websocket"],"pingInterval":25000,"pingTimeout":60000}