c# - 从对象数组中检索一个值
Posted
技术标签:
【中文标题】c# - 从对象数组中检索一个值【英文标题】:c# - Retrieving a value from Object array 【发布时间】:2020-08-22 03:45:18 【问题描述】:我正在从我的 c# 应用程序调用一个外部 API,它以 json 数组的形式返回数据,响应正文如下所示
"result": [
"name": "Tom",
"id": "EM123"
,
"name": "John",
"id": "EM154"
]
在我的 c# 应用程序中,我只想检索第一个元素的 ID,对于上述响应正文,它将是 EM123..
上面是一个示例代码,我想从我的对象数组 obj 中检索“EM123”
【问题讨论】:
将json反序列化为具体类的数组,然后使用ToDictionary
【参考方案1】:
我的第一个建议是使用https://app.quicktype.io。如果您按照您提供的方式向它提供 JSON 响应,它将为您提供适当的 C# 对象定义。在这种情况下,定义如下所示:
public partial class ApiResponse
[JsonProperty("result")]
public Result[] Result get; set;
public partial class Result
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("id")]
public string Id get; set;
添加这两个类后,您将能够执行以下操作:
var apiResponse = JsonConvert.DeserializeObject<ApiResponse>(reponse);
Console.WriteLine("This is what I need: " + apiResponse.Result.First().Id);
希望这会有所帮助。
【讨论】:
上面提到的方法是用Newtonsoft库。 var response = Newtonsoft.Json.JsonConvert.DeserializeObject(result) 你是对的,这是我的错误,我使用 jsonresponse 而不是 JsonConvert以上是关于c# - 从对象数组中检索一个值的主要内容,如果未能解决你的问题,请参考以下文章
C# JSON 反序列化:如何从 JSON 对象数组中获取值 [重复]