2012-02-13 22 views
10

JSON स्ट्रिंग:परिवर्तित json

{"movies":[{"id":"1","title":"Sherlock"},{"id":"2","title":"The Matrix"}]} 

सी # वर्ग: मूवी के

public class Movie { 
    public string title { get; set; } 
} 

सी # परिवर्तित json ग # सूची:

JavaScriptSerializer jss = new JavaScriptSerializer(); 
List<Movie> movies = jss.Deserialize<List<Movie>>(jsonString); 

मेरे movies चर रहा है गिनती = 0. के साथ एक खाली सूची होने के अंत में क्या मुझे कुछ याद आ रहा है?

+0

शायद आपको पहले जेसन नोड को 'मूवी' के रूप में नामित करना चाहिए, तो यह 'मूवी' कक्षा से मेल खाता है? –

उत्तर

18

आपकी सी # कक्षा मैपिंग जेसन संरचना से मेल नहीं खाती है।

समाधान:

class MovieCollection { 
     public IEnumerable<Movie> movies { get; set; } 
} 

class Movie { 
     public string title { get; set; } 
} 

class Program { 
     static void Main(string[] args) 
     { 
       string jsonString = @"{""movies"":[{""id"":""1"",""title"":""Sherlock""},{""id"":""2"",""title"":""The Matrix""}]}"; 
       JavaScriptSerializer serializer = new JavaScriptSerializer(); 
       MovieCollection collection = serializer.Deserialize<MovieCollection>(jsonString); 
     } 
} 
+0

मैंने इसका इस्तेमाल किया, यह कहता है: "संग्रह वर्ग (मूवीकोलेक्शन) किसी सरणी के deserialization के लिए समर्थित नहीं है। कृपया मदद करें! –

-1

तुम भी आप कोई तिथि नहीं संरचना मिलान करना चाहते हैं Jquery
कृपया http://www.codeproject.com/script/Articles/ArticleVersion.aspx?aid=105210&av=174581

+0

यह लिंक सवाल का जवाब नहीं देता है (यह जेसन का भी उल्लेख नहीं करता है)। इसके अलावा, StackOverflow देखें विवरण के बिना लिंक पेस्ट करने के बारे में दिशानिर्देश। –

0

पढ़ का उपयोग कर डेटा भेज सकते हैं, तो आप इस तरह, JSON की स्ट्रिंग बदल सकते हैं :

{[{"आईडी": "1", "शीर्षक": "शेरलॉक"}, {"आईडी": "2", "शीर्षक": "मैट्रिक्स"}]}

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