Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读取json字符串的内容_C#_Json_Visual Studio 2012 - Fatal编程技术网

C# 读取json字符串的内容

C# 读取json字符串的内容,c#,json,visual-studio-2012,C#,Json,Visual Studio 2012,因此,我正在执行一个HttpWebRequest,它返回一个jsonstring。反序列化字符串如下所示: { "have_warnings": "20", "pp_active": false, "noofslots": 2, "paused": true, "pause_int": "0", "mbleft": 7071.03378, "diskspace2": 55.610168, "diskspace1": 55.61016

因此,我正在执行一个
HttpWebRequest
,它返回一个jsonstring。反序列化字符串如下所示:

{
    "have_warnings": "20",
    "pp_active": false,
    "noofslots": 2,
    "paused": true,
    "pause_int": "0",
    "mbleft": 7071.03378,
    "diskspace2": 55.610168,
    "diskspace1": 55.610168,
    "jobs": [{
        "timeleft": "0:00:00",
        "mb": 6918.785553,
        "msgid": "",
        "filename": "xxxx",
        "mbleft": 5869.015694,
        "id": "xx"
    },
    {
        "timeleft": "0:00:00",
        "mb": 2238.526516,
        "msgid": "",
        "filename": "xxxx",
        "mbleft": 1202.018086,
        "id": "xxxx"
    }],
    "speed": "0 ",
    "timeleft": "0:00:00",
    "mb": 9157.312069,
    "state": "Paused",
    "loadavg": "0.11 | 0.08 | 0.08 | V=444M R=88M",
    "kbpersec": 0.0
}
现在,我想在UI中的标签中显示一些数据。最好的方法是什么

我试着:

dynamic array = JsonConvert.DeserializeObject(qstatusOutput);

        foreach (var item in array) 
        {
            MessageBox.Show("{0}{1}", item.timeleft, item.mbleft);
        }
但是我犯了一个错误

“Newtonsoft.Json.Linq.JProperty”不包含 “时间限制”


剩下的时间在工作中,请尝试下面的内容

foreach (var item in array.jobs) 
{
   MessageBox.Show("{0}{1}", item.timeleft, item.mbleft);
}

来自
反序列化对象的结果不是数组。它是一个包含数组作为一个属性的结构

dynamic result = JsonConvert.DeserializeObject(qstatusOutput);
dynamic array = result.jobs;

foreach (var item in array) 
{
  MessageBox.Show("{0}{1}", item.timeleft, item.mbleft);
}

要采取类型安全方法,您可以使用此网站:


啊,这是我的错误。。它的工作现在:)真棒的网站顺便说一句!谢谢
var root = JsonConvert.DeserializeObject<RootObject>(qstatusOutput);
foreach (var job in root.jobs)
{
    Console.WriteLine(job.timeleft);
}

public class Job
{
    public string timeleft { get; set; }
    public double mb { get; set; }
    public string msgid { get; set; }
    public string filename { get; set; }
    public double mbleft { get; set; }
    public string id { get; set; }
}

public class RootObject
{
    public string have_warnings { get; set; }
    public bool pp_active { get; set; }
    public int noofslots { get; set; }
    public bool paused { get; set; }
    public string pause_int { get; set; }
    public double mbleft { get; set; }
    public double diskspace2 { get; set; }
    public double diskspace1 { get; set; }
    public List<Job> jobs { get; set; }
    public string speed { get; set; }
    public string timeleft { get; set; }
    public double mb { get; set; }
    public string state { get; set; }
    public string loadavg { get; set; }
    public double kbpersec { get; set; }
}
dynamic array = JsonConvert.DeserializeObject(qstatusOutput);

foreach (var item in array.jobs)
{
    MessageBox.Show(String.Format("{0} {1}", item.timeleft, item.mbleft));
}