【问题标题】:c# - Retrieving a value from Object arrayc# - 从对象数组中检索一个值
【发布时间】: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

标签: c# arrays dictionary object


【解决方案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
猜你喜欢
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-06
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
  • 2013-09-03
相关资源
最近更新 更多