2012-11-05 18 views
5

साथ मैं नेट 3.5 में JavaScriptSerializer साथ निम्नलिखित JSON संरचना का निर्माण करने के लिए कोशिश कर रहा हूँ:नेस्टेड सूची JavaScriptSerializer

{ 
    "chart": "pie", 
    "series": [ 
     { 
      "name": "Browsers", 
      "data": [ 
       [ 
        "Firefox", 
        6 
       ], 
       [ 
        "MSIE", 
        4 
       ] 
      ], 
      "size": "43%" 
     } 
    ] 
} 

मुद्दा मैं डेटा अनुभाग के बारे में है का सामना। मैं ऐसी कक्षा नहीं बना सकता जो ऊपर की संरचना में डेटा में क्रमबद्ध करता है।

मैंने अन्य पोस्ट पढ़ी हैं जो विषय को छूते हैं लेकिन समाधान हमेशा JSON.Net का उपयोग करना प्रतीत होता है। उदाहरण के लिए Serializing dictionaries with JavaScriptSerializer। हालांकि, मैं Primaily .NET 3.5 ढांचे में जावास्क्रिप्टसेरियल या अन्य अंतर्निर्मित सुविधाओं का उपयोग करके इसे हल करना चाहता हूं।

मैं डेटा अनुभाग कैसे बना सकता हूं?

* EDIT जावास्क्रिप्टसेरियलाइज़र के साथ इसे हल करने का तरीका ऑब्जेक्ट पर डेटा प्रॉपर्टी के लिए क्रमबद्ध होने के लिए ऑब्जेक्ट सरणी बनाना है।

इनपुट पैरामीटर डेटा "फ़ायरफ़ॉक्स: 6 \ nMSIE: 4 \ n क्रोम: 7" है।

सार्वजनिक वस्तु [] GetData (स्ट्रिंग डेटा) { वर dataStrArr = data.Split (नई [] {Environment.NewLine}, StringSplitOptions.None);

 var dataArr = new object[dataStrArr.Length]; 

     for (var index = 0; index < dataStrArr.Length; index++) 
     { 
      var component = dataStrArr[index]; 
      var componentArr = component.Split(':'); 
      if (componentArr.Length != 2) 
       continue; 

      var key = componentArr[0]; 
      decimal value; 

      if (decimal.TryParse(componentArr[1], out value)) 
      { 
       var keyValueArr = new object[2]; 
       keyValueArr[0] = key; 
       keyValueArr[1] = value; 

       dataArr[index] = keyValueArr; 
      } 
     } 

     return dataArr; 
    } 
+0

[जावास्क्रिप्टसेरियलाइज़र के साथ शब्दकोशों को क्रमबद्ध करना] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/6416950/serializing-dples-with-javascriptserializer) – McGarnagle

+0

आपके द्वारा लिंक की गई पोस्ट में मूल नेट है। समाधान (धारावाहिक को ओवरराइड करना) । फिर भी, JSON.Net के साथ स्वयं को परिचित करना बहुत आसान है ... – McGarnagle

+0

संभवतः वह तकनीकी रूप से बाध्य है यदि वह अभी भी .NET 3.5 का उपयोग कर रहा है, तो JSON.Net का विकल्प नहीं हो सकता है। – Pxtl

उत्तर

1

मुझे लगता है कि आपको लगता है कि क्रमानुसार करने निम्नलिखित वर्ग (RootObject) की तरह कुछ की जरूरत है:

public class Series 
{ 
    public string name { get; set; } 
    public List<List<object>> data { get; set; } 
    public string size { get; set; } 
} 

public class RootObject 
{ 
    public string chart { get; set; } 
    public List<Series> series { get; set; } 
} 

मुझे पता है कि अगर मदद करता हैं।

संबंधित मुद्दे