如何使用实体 class 反序列化列表 JSON?

How to deserialize list JSON using entity class?

我得到一个 JSON,其中包含列表。现在我只想使用一些 属性 而不是所有属性。 JSON

{ 
  "instance_pools" : [
      {
          "instance_pool_name":"pool1",
          "node_type_id":"standard",
          "azure_attributes":{
              "availability":"on"
           },
           "instance_pool_id":"poool2345",
           "status":{}
      },
      {
          "instance_pool_name":"pool1",
          "node_type_id":"normal",
          "azure_attributes":{
              "availability":"on"
           },
           "instance_pool_id":"poool2345",
           "status":{}
      },
      {
          "instance_pool_name":"pool1",
          "node_type_id":"high",
          "azure_attributes":{
              "availability":"on"
           },
           "instance_pool_id":"poool2345",
           "status":{}
      }
  ]
}

现在在.Net端,我只想要instance_pool_name和对应的instance_pool_id。 我是 .Net 的新手,有人可以帮助我如何反序列化这个复杂的 JSON 并仅使用一些属性。

谢谢

您可以根据需要创建 classes。您不得将所有 json 属性映射到 C# class' 属性。因此,您可以使用所需的属性编写 C# classes:

public class InstancePoolCollection
{
    public InstancePool[] instance_pools{get;set;}
}


public class InstancePool
{
    public string instance_pool_id{get;set;}
    public string instance_pool_name{get;set;}
}

反序列化使用System.Text

var obj = JsonSerializer.Deserialize<InstancePoolCollection>(jsonObj);

反序列化使用Newtonsoft.Json

var obj = JsonConvert.DeserializeObject<InstancePoolCollection>(jsonObj);

Note: Your JSON was not conform. I have changed it.