簡體   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