把 JSON 对象拼成 URL query string,数组三种写法、嵌套对象走方括号、可排序可跳空,还能转回 JSON,全程浏览器本地
- 本地处理
- 分类 开发运维
- 适合 格式化、校验、压缩或检查和代码相关的文本。
这个工具能做什么
从一个 JSON 对象拼出 URL query string,数组和嵌套对象怎么出全由你定。 粘一个对象,立刻读到干净的 `key=value&key=value`,直接接在 `?` 后面就能用。 每个键和值都过一遍 `encodeURIComponent`:空格变 `%20`,斜杠变 `%2F`, 值里带的 `&` 或 `=` 会被转义,中文这种字符也原样保留,拼出来的串不会 把它落地的那条 URL 搞坏。
数组怎么序列化你来挑:`tag=red&tag=blue`(大多数后端认得的重复写法)、 `tag[]=red&tag[]=blue`(`qs` 库用的方括号写法),或者 `tag=red,blue` (紧凑的逗号写法)。嵌套对象展开成方括号路径,所以 `{user:{name:"ada"}}` 出来是 `user[name]=ada`,再深一层就是 `user[address][city]=oslo`。还能加上开头的 `?`、按键排序拿到稳定的 缓存键或签名串、跳过空值让链接清爽。
右边一栏会把任意 query string 解析回格式化的 JSON,你改哪一边、另一边 都跟着重拼,来回转一遍数据不会被悄悄改坏。JSON 写错了给出清晰的 中英文提示,而不是甩你一个白屏。全程不上传,解析器、序列化器、JSON 格式化都是浏览器里跑的纯 JavaScript,这在对象带着 token 或内部跳转 地址、不想留在别人服务器日志里时尤其要紧。
工具细节
- 输入
- 文本 + 结构化内容
- 页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
- 输出
- 即时结果 + 复制
- 结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
- 隐私
- 浏览器本地处理
- 主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
- 保存 / 分享
- 可分享链接状态
- 关键设置会进入 URL,复制链接后别人能复现同一组参数。
- 性能预算
- 首屏 JS ≤ 9 KB
- 没有声明 WASM 依赖,适合快速打开和移动端使用。
- 适用场景
- 开发运维 · 程序员
- 分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。
怎么用
-
1. 输入
把内容粘贴或拖入工具面板。
-
2. 处理
点击按钮,在浏览器内本地处理,文件不上传。
-
3. 复制 / 下载
一键复制结果或下载到本地。
JSON 转 Query String 适合怎么用
适合穿插在写代码、查问题、做 Review、上线前的小任务里。
适合开发场景
- 格式化、校验、压缩或检查和代码相关的文本。
- 把片段整理好再放进文档、工单、提交或交接材料。
- 不切换工具,快速检查一个小 payload。
开发检查项
- 压缩、混淆这类不可逆处理,先对副本操作。
- 除非确认工具本地处理,不要粘贴密钥和敏感片段。
- 转换后的代码上线前,仍要跑自己的测试或 lint。
下一步可以接着做
这些入口会把当前任务接到更完整的工具链里。
真实使用场景
拿已有的配置对象拼出请求 URL
代码里有个搜索配置就是个普通对象, `{q:"opus 4", tags:["ai","tools"], page:{size:20}}`,你想在浏览器 或 curl 里手动测一下它,需要那条 URL。粘进对象,挑 repeat 数组写法, 打开开头的 `?`,就得到 `?q=opus%204&tags=ai&tags=tools&page[size]=20`, 接到接口后面就能用。不用数 &符号,也不会忘了把 "opus 4" 里的空格转义。
对上后端要的那种数组写法
一个 Rails API 要 `tags[]=a&tags[]=b`,一个 Go 服务要 `tags=a&tags=b`, 一个搜索 API 要 `tags=a,b`。同一份 JSON,三个目标。切一下数组写法, 复制贴合你正在调的那个服务的串,不用手动改方括号还改错。实时预览 会在你粘到 HTTP 客户端之前先把结果给你看。
拼出可签名的稳定串
给请求签名、或者拿 URL 当缓存键时,两个逻辑上相等的对象必须拼出 逐字节一样的串。打开排序和跳空:键按字典序出、空值丢掉,于是 `{b:"",a:"1",c:"2"}` 和 `{c:"2",a:"1"}` 都序列化成 `a=1&c=2`。喂给 你的 HMAC,签名就能复现。
把对象放进链接前先清一遍
你在用表单状态拼分享链接,里头有些半填的字段,空字符串、一个 null、一个空数组。打开跳空,这些就从输出里消失,链接只带真正有用的 参数,而不是拖着一串 `&ref=&promo=` 的噪音,把 URL 和你的分析数据 都搞乱。
常见踩坑
拿 URLSearchParams 去处理嵌套对象。`new URLSearchParams({user:{name:'ada'}})` 会把对象拼成 `[object Object]`,根本不嵌套。数据只要有层级,你就需要方括号路径序列化,而这正是这个工具做的事,复制它的输出,别跟内置 API 硬刚。
需要往返时却挑了逗号数组写法。`comma` 紧凑但有损:`tags=a,b,c` 跟一个本来就带逗号的单值分不开,解析回去没法可靠重建数组。只要你以后会把串读回 JSON,就用 repeat 或 bracket。
以为结果会保留数字和布尔类型。query string 是文本,`{n:42,ok:true}` 序列化成 `n=42&ok=true`,解析回来拿到的是字符串 "42" 和 "true",不是原来的类型。在接收端自己转;工具从不猜类型,因为猜会把前导零和大整数搞坏。
隐私说明
序列化、解析、JSON 格式化全是浏览器标签页里跑的纯 JavaScript。JSON 对象、 query string、以及你转过什么的任何记录,都不会发到服务器。你的选项设置 (数组写法、排序、开头的问号、跳空)只存在这个浏览器的 localStorage 里。 唯一要留意:为了"分享链接"功能,JSON 输入会编码进页面 URL,所以你把 链接粘到别处时,对方的访问日志会看到它。带 token、session id 或签名跳转的 对象,请直接复制文本,别分享 URL。
常见问题
类似工具组合
做你这行的人, 还会一起用这些。