如何在 ktor 中接收 POST 数组参数?

Posted

技术标签:

【中文标题】如何在 ktor 中接收 POST 数组参数?【英文标题】:How to receive POST array params in ktor? 【发布时间】:2019-10-20 15:06:45 【问题描述】:

无法接收帖子正文数组参数

$.post(
  'http://some_url/url',
  
    order_items: [
      
        order_item_id: 1,
        action_id: 1,
        fulfillment_time: "String 1"
      ,
      
        order_item_id: 2,
        action_id: 2,
        fulfillment_time: "string 2"
    ]
  
);
post("/url") 
    val params = call.receiveParameters()

我得到了数组/地图:

order_items[0][order_item_id]=[1],
order_items[0][action_id]=[1],
order_items[0][fulfillment_time]=[1s],
order_items[1][order_item_id]=[2],
order_items[1][action_id]=[2],
order_items[1][fulfillment_time]=[2s]

我无法获得参数order_items

val p1 = params.get("order_items") //null
val p2 = params.get("order_items[0][order_item_id]") //1

【问题讨论】:

你能告诉我们你的 ktor 设置吗?我认为params是一张地图,不像json那样工作。 我相信你在这里遗漏了一些东西,也许是解析。你在使用一些 Moshi 或 Gson 来解析那个 JSON 吗?\ 【参考方案1】:

你可以使用call.receiveParameters().getAll("array[]")

在哪里<input name="array[]">

但我建议使用断点,并尝试调试 Ktor 实际如何解析您的有效负载。

【讨论】:

以上是关于如何在 ktor 中接收 POST 数组参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ktor 中授权 POST 表单上传?

如何使用 ktor kotlin 通过 POST 发送 JSON 字符串?

如何通过 POST 方法将数组发送到服务器?

如何使用 Ktor 服务器向其他服务器发送 POST 请求?

如何在 ktor 框架中限制路由访问?

我要给发送请求后台传递参数如图所示,json数组中的对象后台有对应实体类,后台使用springboot如何接收?