1

RottenTomatoes から取得した JSON 形式の情報を解析しようとしています

{
    "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 とこのエラー「Type 'System.String' is not supported for deserialization of an array.」が発生します。

これがメインの私のコードです

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; }

}

そしてアドバイス?そして、一番下の「リンク」について何かをする必要があることに気付きましたが、それを削除してもまだ機能しません。

4

1 に答える 1

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; }

    }

}
于 2013-03-02T06:44:56.180 に答える