問題

私はHTTP reqから投稿されたjsonを持っています。私は各ループで使用するためにそれを逆シリアル化しようとしています。残念ながら、そのフォーマットはオブジェクトのリストとして私のお尻を蹴っています(私は信じています)。

これまで私は以下を持っています:

 dynamic jsonObj = JsonConvert.DeserializeObject(await req.ReadAsStringAsync());

foreach (var p in jsonObj.hireSchedules)
    {
     ///do something
    }
 

私のjsonは以下の通りです:

 {
"hireSchedules": [
    {
        "plant": "7246054",
        "num" : "79",
        "hire": "1137277"
     },
    {
        "plant": "7246055",
        "num" : "80",
        "hire": "1137278"
     }
    ]
}
 

私は次のクラスを持っています:

 public class HireSchedule
{
    public string plant { get; set; }
    public string num { get; set; }
    public string hire { get; set; }
}

public class RootObject
{
    public List<HireSchedule> hireSchedules { get; set; }
}
 

どんな助けもありがとう。ありがとう!

  ベストアンサー

すでにクラスを定義しているので、クラスを逆シリアル化するのは簡単です。次に、強く型付けされたクラスがあり、IDEはプロパティにアクセスする方法を教えてくれるはずです。

 var json = File.ReadAllText("json1.json");
var root = JsonConvert.DeserializeObject<RootObject>(json);

foreach (var p in root.hireSchedules)
{
    ///do something
}
 

  同じタグがついた質問を見る

c#jsonforeachdeserialization