反序列化JSON C#

问题描述:

我试图分析出一些信息,我从烂番茄检索这是一个JSON格式反序列化JSON C#

{ 
    "cast": [ 
     { 
      "id": "162655641", 
      "name": "Tom Hanks", 
      "characters": [ 
       "Woody" 
      ] 
     }, 
     { 
      "id": "162655909", 
      "name": "Tim Allen", 
      "characters": [ 
       "Buzz Lightyear" 
      ] 
     }, 
     { 
      "id": "162655020", 
      "name": "Joan Cusack", 
      "characters": [ 
       "Jessie the Cowgirl" 
      ] 
     }, 
     { 
      "id": "162672460", 
      "name": "Ned Beatty", 
      "characters": [ 
       "Lots-o'-Huggin' Bear", 
       "Lotso" 
      ] 
     }, 
     { 
      "id": "162657445", 
      "name": "Richard Kind", 
      "characters": [ 
       "Bookworm" 
      ] 
     }, 
     { 
      "id": "162654813", 
      "name": "Erik von Detten", 
      "characters": [ 
       "Sid" 
      ] 
     }, 
     { 
      "id": "770713272", 
      "name": "James Anthony Cotton", 
      "characters": [] 
     } 
    ], 
    "links": { 
     "rel": "http://api.rottentomatoes.com/api/public/v1.0/movies/770672122.json" 
    } 
} 

我只是试图让这段代码的工作,但我得到的InvalidOperationException和此错误 “类型'System.String'不支持数组的反序列化。”

这里是我的主

string json = File.ReadAllText("json.txt"); 

CastInfo castMember = new JavaScriptSerializer().Deserialize<CastInfo>(json); 

下面的代码是我的班

public class CastInfo 
{ 
    public List<CustomCastInfo> cast { get; set; } 
} 
public class CustomCastInfo 
{ 
    public string id { get; set; } 
    public string name { get; set; } 
    public List<string> characters { get; set; } 

} 

和建议?我意识到我需要对底部的“链接”做些什么,但是即使我删除它仍然无效。

我只是试着用你提供的json来运行它,它工作正常。

using System.Collections.Generic; 
using System.IO; 
using System.Web.Script.Serialization; 

namespace JsonDeserialization 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string json = File.ReadAllText("json.txt"); 

      CastInfo castMember = new JavaScriptSerializer().Deserialize<CastInfo>(json); 
     } 
    } 

    public class CastInfo 
    { 
     public List<CustomCastInfo> cast { get; set; } 
    } 
    public class CustomCastInfo 
    { 
     public string id { get; set; } 
     public string name { get; set; } 
     public List<string> characters { get; set; } 

    } 

}