2013-03-02 87 views
1

我試圖分析出一些信息,我從爛番茄檢索這是一個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; } 

} 

和建議?我意識到我需要對底部的「鏈接」做些什麼,但是即使我刪除它仍然無效。

回答

1

我只是試着用你提供的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; } 

    } 

}