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

如何将JSON对象转换为&拼接的键值对参数字符串

JSON对象转指定&拼接字符串实现方法

你可以根据是否需要URL编码选择对应的实现方案:

方案1:手动遍历拼接(完全匹配示例输出,无额外编码)

直接遍历对象的键值对,按键=值格式组装后用&连接即可,输出和需求格式完全一致:

// 待转换对象
const dic = {
  a: "1",
  b: "2,3",
  c: "abc"
}

// 转换逻辑
const queryStr = Object.entries(dic)
  .map(([key, val]) => `${key}=${val}`)
  .join('&')

console.log(queryStr) // 输出:a=1&b=2,3&c=abc

如果需要兼容不支持Object.entries的老旧运行环境,可以用for...in循环实现同样逻辑:

const strArr = []
for (const key in dic) {
  // 过滤原型链上的属性
  if (Object.prototype.hasOwnProperty.call(dic, key)) {
    strArr.push(`${key}=${dic[key]}`)
  }
}
const queryStr = strArr.join('&')

方案2:使用原生URLSearchParams API(符合标准URL查询参数规范)

如果你的使用场景是拼接URL的查询参数,推荐直接用JS原生内置的URLSearchParams工具,不需要手写遍历逻辑,会自动处理特殊字符的URL编码:

const dic = {
  a: "1",
  b: "2,3",
  c: "abc"
}
const queryStr = new URLSearchParams(dic).toString()
console.log(queryStr) 
// 输出:a=1&b=2%2C3&c=abc (逗号被自动编码为%2C,符合URL标准,如果不需要编码请选方案1)

注意事项

  • 如果对象中存在null、undefined类型的属性值,建议在拼接前增加判空逻辑,避免出现key=undefined这类不符合预期的拼接结果
  • 如果属性值是对象、数组等复杂类型,需要先把值序列化成你需要的字符串格式再做拼接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:48:27