2012-02-13 2 views
10

JSON 문자열 :변환 JSON은

{"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' 클래스에 해당합니까? –

답변

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)가 배열의 비 직렬화에 지원되지 않습니다. 도와주세요! –

0

을 읽을 PLS JQuery와
를 사용하여 데이터를 전송할 수 있습니다 :

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