如何在 JSON 中创建数组?

问题描述

如何发布这样的 HTTP 请求?我试图制作这样的东西,但我不知道如何制作 [] 部分。感谢帮助!

{
  "ID": 1,"calls": [
    {
      "number": 702061966,"duration": "00:02:21","date" : "2020-11-26 12:45:00"
    },{
      "number" : 123456789,"duration" : "00:15:48","date" : "2020-11-27 08:23:00"
      },"duration" : "00:09:33","date" : "2020-11-28 16:02:00"
    }
  ]
}

解决方法

首先您需要一个结构来表示 C# 中的数据。对于给定的 JSON,这可能如下所示:

public record MyRequest(int ID,IEnumerable<MyItem> Calls);
public record MyItem(int Number,string Duration,string Date);

现在您创建请求

var req = new MyRequest(1,new List<MyItem> {
  new MyItem(702061966,"00:02:21","2020-11-26 12:45:00"),...
});

...然后发送

var response = await httpClient.PostAsJson("some/url",req);

代码示例旨在作为第一个方向,未经测试。您可以在此处阅读更多相关信息:

我不知道如何制作 [] 部分

任何集合(IEnumerable<>List<>、...)都将序列化为 JSON 列表。

注意事项:

  • 代码示例使用 c# 9 功能
  • 您可能想使用字符串以外的其他数据类型,例如DateTime