如何使用c#从api调用结果中获取值?

问题描述 投票:0回答:1

我进行api调用,结果如下:

这是数据

[{{
  "Id": "7",
  "Type": "user",
  "Status": 1,
  "Name": "Bob",
}},
{{
  "Id": "8",
  "Type": "user",
  "Status": 1,
  "Name": "Mary",
}}]

我正在尝试检索值,例如让我们说出每个值的名称,这样我最终会得到 MyName 和 MyName2

  var a = JArray.Parse(data);
  List<string> resultList = new List<string>();

   foreach (var item in a)
   {
      string str= item["Name"].ToString() + ";"
   }
   return resultList;

但它给出了一个例外,说它无法访问名称。

我该怎么做?

c# json
1个回答
0
投票

首先,您的 JSON 对象的格式似乎不正确。正确的 JSON 对象应该是这样的 -

[
  {
    "Id": "7",
    "Type": "user",
    "Status": 1,
    "Name": "Bob"
  },
  {
    "Id": "8",
    "Type": "user",
    "Status": 1,
    "Name": "Mary"
  }
]

其次,你可以定义一个可以表示JSON对象的类。例如,

 public class Customer
    {
        public string Id { get; set; }
        public string Type { get; set; }
        public int Status { get; set; }
        public string Name { get; set; }
    }

然后,你可以反序列化该对象

List<Customer> customers = JsonSerializer.Deserialize<List<Customer>>(jsonString); //jsonString you  get from API call
foreach (var customer in customers)
{
  Console.WriteLine($"Name: {customer.Name});
}
© www.soinside.com 2019 - 2024. All rights reserved.