0

Json.NETを使用してオブジェクトを逆シリアル化する方法のチュートリアルを探していましたが、私のものに似たものは見つかりませんでした。

私はこのようなJsonを持っています:

{
    "__ar":1,
    "payload":{
        "entries":[
        {
        "uid":100000011980844,
        "photo":"",
        "type":"user",
        "text":"testing",
        "path":"testing",
        "category":"",
        "needs_update":true,
        "non_title_tokens":"",
        "names":[
        "Test"
        ],
        "subtext":"",
        "score":0
        }
    ]
    }
}

そして、私はこのように逆シリアル化しようとしました:

var j = JsonConvert.DeserializeObject<People> (json);

その後:

public class People
{
    public string __ar { get; set; }
    public Payload payload { get; set; }
}

public class Payload
{
    public Person entries { get; set; }
}

public class Person
{
    public string uid { get; set; }
    public string photo { get; set; }
    public string type { get; set; }
    public string text { get; set; }
    public string path { get; set; }
    public string category { get; set; }
    public string needs_update { get; set; }
    public string non_title_tokens { get; set; }
    public string subtext { get; set; }
    public string score { get; set; }
    public List<string> names { get; set; }
}

しかし、それはうまくいきませんでした、誰かがそれを修正するために私がしなければならないことを知っていますか?エラーメッセージは次のとおりです。

正しく逆シリアル化するにはJSONオブジェクト(例:{"name": "value"})が必要なため、現在のJSON配列(例:[1,2,3])をタイプ'QueryFacebook.Parser+Person'に逆シリアル化できません。このエラーを修正するには、JSONをJSONオブジェクト(例:{"name": "value"})に変更するか、逆シリアル化された型を配列またはコレクションインターフェイスを実装する型(例:ICollection、IList)に変更します。 JSON配列から逆シリアル化されます。

4

1 に答える 1

3

Payload以下のように定義を変更するだけで動作します

public class Payload
{
    public Person[] entries { get; set; }
}
于 2013-01-17T17:47:08.013 に答える