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

如何使用JavaScript将逗号分隔Query param转换为KeyValue Pair JSON对象

实现说明

首先需要明确:你预期的多同键JSON结构不符合JavaScript对象与标准JSON规范——JS对象中同名键会被后写入的值覆盖,最终只会保留最后一个Id字段,原生JSON.stringify序列化时也会自动去重同名键,无法直接通过操作JS对象得到你写的结构。
下面给两种适配不同场景的实现:

方案1:标准兼容结构(业务场景优先选)

如果不是硬要求必须重复键,优先用数组存储多值的标准结构,所有JSON解析器、JS原生逻辑都能正常处理,不会丢值,Schema配置数组校验规则也更简单:

// 原始输入
const source = {"Id":"ZX0123455555,ZX0123455555,ZX0123455545"};
const result = {
  Id: source.Id.split(',')
};
// 输出结构:{ Id: [ 'ZX0123455555', 'ZX0123455555', 'ZX0123455545' ] }

方案2:生成重复键的JSON文本(仅适配特殊校验要求)

如果你的校验流程强制要求传入你给出的重复键格式文本,直接手动拼接字符串即可,不要走原生对象序列化:

const source = {"Id":"ZX0123455555,ZX0123455555,ZX0123455545"};
const idList = source.Id.split(',');
// 手动拼接目标格式字符串
const targetJsonText = `{
${idList.map(idVal => `"Id": "${idVal}"`).join(',\n')}
}`;

运行后targetJsonText的内容和你给出的目标结构完全一致:

{
"Id": "ZX0123455555",
"Id": "ZX0123455555",
"Id": "ZX0123455545"
}

注意:这个输出是纯字符串,不要用JSON.parse把它转回JS对象,否则依然会出现键覆盖、只保留最后一个Id值的问题,仅适合直接传文本给校验逻辑的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:30:49