求助:将JSON对象转换为URL查询参数的Jolt转换方案
Jolt转换JSON键值为URL查询参数的实现方案
需求说明
将包含键值对的JSON对象,转换为包含URL查询参数字符串的数组结构,具体如下:
输入示例
{ "a": 10, "b": 20, "c": "Name" }
期望输出
{ "requests": ["?a=10&b=20&c=Name"] }
Jolt转换规范
使用以下Jolt规范即可实现上述转换:
[ { "operation": "shift", "spec": { "*": { "$": "temp.keys", "@": "temp.values" } } }, { "operation": "modify-overwrite-beta", "spec": { "temp": { "params": "=join('=', @(1,keys), @(1,values))", "queryString": "=join('&', @(1,params))" } } }, { "operation": "shift", "spec": { "temp": { "queryString": { "#?": "requests[]", "@": "requests[]" } } } }, { "operation": "modify-overwrite-beta", "spec": { "requests": { "*": "=concat(@(0))" } } } ]
转换步骤说明
- 第一步(shift操作):提取原JSON中所有的键和值,分别存入临时对象
temp的keys和values数组 - 第二步(modify-overwrite-beta操作):先将每个键值对用
=拼接成key=value格式的字符串,再把所有这些字符串用&连接成完整的查询参数部分 - 第三步(shift操作):生成查询参数的前缀
?,并将前缀和查询参数部分都放入requests数组 - 第四步(modify-overwrite-beta操作):将数组中的前缀和查询参数拼接成完整的URL查询参数字符串
内容的提问来源于stack exchange,提问作者Datadev
相关产品推荐
相关产品推荐

