You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R Plumber API:如何处理使用数组语法的查询字符串输入

在Plumber API中处理数组形式的查询字符串参数

要处理调查平台传递的多选类型数组参数(如?this_var[0]=123&this_var[1]=456),Plumber不会自动将这类参数解析为向量,你需要手动解析查询字符串并提取目标参数:

  1. 手动解析完整查询参数
    使用req$parse_query()方法获取所有查询参数,该方法会保留参数的原始键名(包括方括号部分)。

  2. 筛选并提取数组参数值
    从解析后的参数列表中,筛选出键名匹配this_var[数字]格式的项,提取它们的值并整理为向量。

示例代码

#* 处理多选类型的查询参数
#* @get /echo-multi
function(req){
  # 解析所有查询参数
  query_params <- req$parse_query()
  
  # 筛选出以"this_var["开头的参数
  multi_vals <- query_params[grepl("^this_var\\[", names(query_params))]
  
  # 提取值并转为向量(按索引排序确保顺序正确)
  sorted_vals <- unlist(multi_vals[order(names(multi_vals))])
  
  list(selected_options = sorted_vals)
}

测试说明

当访问/echo-multi?this_var[0]=123&this_var[1]=456&this_var[2]=789时,API会返回:

{
  "selected_options": ["123", "456", "789"]
}

补充说明

  • 若不需要严格按索引顺序返回,可直接用unlist(multi_vals)获取所有值。
  • 要兼容单选和多选场景,可在代码中判断:如果存在this_var(单选参数)则直接取值,否则按上述方法提取数组参数。

内容的提问来源于stack exchange,提问作者Runic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:12:10