繁体   English   中英

使用c#反序列化JSON文件

[英]Deserializing a JSON file with c#

我的问题是我有这个JSON文件:

我必须将其保存在列表中,但是当我尝试打印列表的第一个元素时,我得到一个System.ArgumentOutOfRangeException,就像我的列表为空。 这是我的代码:

JavaScriptSerializer ser = new JavaScriptSerializer();            
        Causali o = new Causali();
        List<CausaliList> lista = new List<CausaliList>();
        WebRequest causali = (HttpWebRequest)WebRequest.Create("http://trackrest.cgestmobile.it/causali");
        WebResponse risposta = (HttpWebResponse)CreateCausaliRequest(causali).GetResponse();
        Stream data = risposta.GetResponseStream();
        StreamReader Leggi = new StreamReader(data);            
        string output = Leggi.ReadToEnd();
        lista = ser.Deserialize<List<CausaliList>>(output);
        lst2.Items.Add(lista[0]);

这些是我保存的两个类:

class Causali
    {
        public int id;
        public string causaliname;
        public string identificationcode;
        public string expired;
    }   

class CausaliList
    {
        public Causali causali;       
    }

你能帮我解决一下吗?

要反序列化c#中的代码:让我们假设您在var getContent中有数据,那么您可以使用:

dynamic getDesearilize = JsonConvert.DeserializeObject(getContent);

请尝试将此作为您的根对象:

public class CausaliList
{
    public List<Causali> causali { get; set; }
}

然后像这样去除你的对象:

lista = ser.Deserialize<CausaliList>(output); 

最后你可以像这样访问列表:

lst2.Items.Add(lista.causali[0]);

注意:我强烈建议使用json.NET。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM