2012-02-13 116 views
10

JSON字符串:轉換JSON對象的C#列表

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

C#類:

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

C#轉換JSON到C#電影的名單:

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

movies變量結果是count = 0的空列表。我錯過了什麼嗎?

+0

也許你應該將第一個json節點命名爲'Movie',以便它對應於'Movie'類? – 2012-02-13 02:43:48

回答

18

您的c#類映射與json結構不匹配。

解決方案:

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

我用這個,它說:「集合類(MovieCollection)不支持反序列化數組。請幫助! – 2015-04-02 14:46:27

0

發送數據,如果你想匹配的CSHARP結構,可以改變JSON字符串,這樣:

{[{ 「ID」 爲 「1」, 「標題」: 「夏洛特」},{ 「ID」: 「2」, 「標題」: 「黑客帝國」}]}