0

次のJsonを逆シリアル化するために、次のクラスの組み合わせを使用して、階層を4ループできるようにしましたが、機能しません

そのようなjsonを逆シリアル化するためのチュートリアルは見つかりませんでした。助けていただければ幸いです。

var myFoo = new JavaScriptSerializer().Deserialize<Commn.foo2>(@"
{""root"":
    {""qss"":[
        {""id"":""d1"",""qss"":[
            {""id"":""qs1-1"",""tp"":""50px"",""ck"":""i"",""dp"":""at""},
            {""id"":""qs1-2"",""tp"":""100px"",""ck"":""i"",""dp"":""at""},
            {""id"":""qs1-3"",""tp"":""150px"",""ck"":""c"",""dp"":""at""},
            {""id"":""qs1-4"",""tp"":""200px"",""ck"":""i"",""dp"":""at""},
            {""id"":""qs1-5"",""tp"":""250px"",""ck"":""c"",""dp"":""at""},
            {""id"":""qs1-6"",""tp"":""300px"",""ck"":""c"",""dp"":""at""},
            {""id"":""qs1-7"",""tp"":""350px"",""ck"":""i"",""dp"":""at""},
            {""id"":""qs1-8"",""tp"":""400px"",""ck"":""i"",""dp"":""at""},
            {""id"":""qs1-9"",""tp"":""450px"",""ck"":""c"",""dp"":""at""},
            {""id"":""qs1-10"",""tp"":""500px"",""ck"":""c"",""dp"":""at""}]
        }

        {""id"":""d2"",""qss"":[
            {""id"":""qs2-1"",""tp"":""50px"",""ck"":""i"",""dp"":""at""},
            {""id"":""qs2-2"",""tp"":""100px"",""ck"":""c"",""dp"":""at""},
            {""id"":""qs2-3"",""tp"":""150px"",""ck"":""c"",""dp"":""at""},
            {""id"":""qs2-4"",""tp"":""200px"",""ck"":""i"",""dp"":""at""},
            {""id"":""qs2-5"",""tp"":""250px"",""ck"":""c"",""dp"":""at""},
            {""id"":""qs2-6"",""tp"":""300px"",""ck"":""c"",""dp"":""at""},
            {""id"":""qs2-7"",""tp"":""350px"",""ck"":""c"",""dp"":""at""},
            {""id"":""qs2-8"",""tp"":""400px"",""ck"":""i"",""dp"":""at""},
            {""id"":""qs2-9"",""tp"":""450px"",""ck"":""c"",""dp"":""at""},
            {""id"":""qs2-10"",""tp"":""500px"",""ck"":""c"",""dp"":""at""}]
        }
    }
}
");

public  class Pages
{
    public string id { get; set; }
    public qss[] children { get; set; }
}

public class qss
{
    public string id { get; set; }
    public string tp { get; set; }
    public string ck { get; set; }
    public string dp { get; set; }
}

/// <summary>
/// Holding the root elemnt
/// </summary>
public class foo2
{
    public qss[] root { get; set; }
}
4

1 に答える 1

0

使用しているクラスは、JSONファイルの属性に正確にマップされていません。JSONの各オブジェクト({}の間に表示されるオブジェクト)と各配列([]の間に表示されるオブジェクト)には、異なるクラスが必要です。各ペア、そのクラスのメンバー。

public class MainObject
{
    public Root root { get; set; }
}

このクラスは、「ルート」値全体を保持します。「root」は{}の間にあり、「root」の後の文字列全体が値であるため、ルートはそのように定義されます。

public class Root
{
    public List<OuterQSS> qss { get; set; }
}

このクラスは、配列である2番目の「qss」の前に表示される外側の「qss」値全体を保持します。

public class OuterQSS
{
    public string id { get; set; }
    public List<InnerQSS> qss { get; set; }
}

このクラスは、「id」値と、内部QSSメンバーの配列全体の両方を保持します。

public class InnerQSS
{
    public string id { get; set; }
    public string tp { get; set; }
    public string ck { get; set; }
    public string dp { get; set; }
}

このクラスは、内側のQSS配列にすべての甘いデータを保持します。

タイプを置き換えるだけです

Deserialize<Commn.foo2> 

新しいメインクラスへのメソッド

Deserialize<MainObject>
于 2012-07-30T22:01:49.737 に答える