2017-06-06 9 views
5

मेरे समस्या मैं इस JSON फ़ाइल है:सी # के साथ एक JSON फ़ाइल deserializing

और मैं एक सूची में सहेजने के लिए है, लेकिन मैं एक सूची 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;  
    } 

तुम मुझे इसे हल करने में मदद कर सकते हैं?

+2

आपका कोड कहां है? – geminiousgoel

+0

क्या आप 'Deserialize' कॉल से पहले 'आउटपुट' के मान का नमूना प्रदान कर सकते हैं? ('Deserialize' लाइन पर ब्रेकपॉइंट रखें और ब्रेक होने पर' आउटपुट' की सामग्री को पकड़ें) –

+0

हाय .. आपका कोड ठीक है ... क्या आप कृपया जेसन स्ट्रिंग को पोस्ट कर सकते हैं जिसे आप इसे deserialize करते हैं! – Wheels73

उत्तर

2

अपने जड़ वस्तु के रूप में इस प्रयास करें:

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

तो deserilize आपकी वस्तु इस तरह:

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

अंत में आप टी तक पहुंच सकते हैं ओ इस तरह की सूची:

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

नोट: मैं दृढ़ता से json.NET का उपयोग करने की अनुशंसा करता हूं।

+0

यह काम नहीं करता है, मेरी सूची में अभी भी 0 तत्व हैं और मुझे नहीं पता कि क्यों –

+0

प्रिय @LorenzoValenti कृपया अपना आउटपुट पोस्ट करें । धन्यवाद। – David

+0

प्रिय @LorenzoValenti। मैंने अपना जवाब अपडेट किया। – David

2

सी # में कोड deserialize करने के लिए: मान लें कि आपके वर getContent में डेटा है तो आप इसका उपयोग कर सकते चलें:

dynamic getDesearilize = JsonConvert.DeserializeObject(getContent); 
संबंधित मुद्दे