如何使用实体 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.
我得到一个 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.