使用 Flurl 的 POST 嵌套值

Nested values with POST using Flurl

所以我是一名 Ruby 开发人员,正在搞乱 C# 并试图弄清楚如何将 Flurl 与我的端点一起使用。

这是JSON我可以通过Ruby。

  {
    type: "workorder.generated",
    data: [{
        id: order.id,
        type: "orders"
      },{
        id: second_order.id,
        type: "orders"
      },{
        id: bad_order.id,
        type: "orders"
      }
    ]
  }

所以将 C# 与 Flurl 结合使用,我不是 100% 了解如何构造它。

var response = await GetAPIPath()
    .AppendPathSegment("yardlink_webhook")
    .WithOAuthBearerToken(GetAPIToken())
    .PostJsonAsync(new
    {
        type = "workorder.generated",
        data = new
        {

        }

    })
    .ReceiveJson();

对于获取类似于 Ruby 示例的嵌套数据有任何帮助吗?

检查这个

var x = new
{
    type = "workorder.generated",
    data = new[]{ new {
        id= 1,
        type= "orders"
      },new {
        id= 2,
        type= "orders"
      },new {
        id= 3,
        type= "orders"
      }
    }
}

所以 flurl 接受几个不同的输入,

  • 首先是 json 字符串:您可以序列化您的 对象 并传递给它,
  • 第二个是对象:将 C# object 传入其中 - 您当前正在做的事情。

两者都要求您将数据作为 对象。有两种方法可以创建 object.

  • 根据 类、
  • 创建您的数据结构
  • 创建匿名对象 - @Derviş 建议

如果您经常使用此数据模型,并且需要进行操作,我建议您创建 类 来为您的对象建模。

以下是如何根据您的需要创建 类:

public class YourObject {
    public string type;
    public List<YourDataObject> data;
}

public class YourDataObject {
    public string id;
    public string type;
}

您需要了解如何初始化对象并为其设置数据,但这是总体思路。