0

C# で JSON 配列を解析する際に問題に直面しています

{
    "details" : [{
            "state" : "myState1",
            "place" : [{
                    "name" : "placeName",
                    "age" : 13
                }
            ]
        }, {
            "state" : "myState2",
            "place" : [{
                    "name1" : "placeName"
                }
            ]
        }, {
            "state" : "myState3",
            "place" : [{
                    "name2" : "placeName"
                }
            ]
        }
    ]
}

私のコードは次のとおりです。

static void Main(string[] args) 
{ 
    string txt = File.ReadAllText("MyJSONFile.txt"); 
    JavaScriptSerializer ser = new JavaScriptSerializer(); 
    var data = ser.Deserialize(txt); 
}

public class Wrap
{ 
    public List<Dictionary<string, object>> details { get; set; } 
}

これらの辞書からデータを読み取るにはどうすればよいですか? JSON に含まれる施設の詳細が 1 つだけの場合もあれば、配列に 30 を超える項目がある場合もあります。このデータはデータベースから取得されています。

4

2 に答える 2

0

次の C# クラス構造を使用できます。

public class Place
{
    public string name { get; set; }
    public int age { get; set; }
    public string name1 { get; set; }
    public string name2 { get; set; }
}

public class Detail
{
    public string state { get; set; }
    public List<Place> place { get; set; }
}

public class Root
{
    public List<Detail> details { get; set; }
}

public class Program 
{
    static void Main(string[] args) 
    { 
        string txt = File.ReadAllText("MyJSONFile.txt"); 
        JavaScriptSerializer ser = new JavaScriptSerializer(); 
        var data = ser.Deserialize<Root>(txt); 

        Console.WriteLine(data.details.Count); // 3
        Console.WriteLine(data.details[0].state); // myState1
        Console.WriteLine(data.details[1].place.Count); // 1
        Console.WriteLine(data.details[1].place[0].age); // 13
    }
}
于 2015-10-27T04:53:25.553 に答える