把 URL query string 解析成 JSON,或从 JSON 生成 query string —— 双向、实时、支持数组与嵌套对象约定 —— 全程浏览器本地
- 本地处理
- 分类 开发运维
- 适合 格式化、校验、压缩或检查和代码相关的文本。
这个工具能做什么
一个 URL query string 与 JSON 之间的双向转换工具。粘一段 query string (带不带开头的 `?` 都行),立刻读到格式化好的 JSON 对象;或者改 JSON, 看 query string 一个字符一个字符地重新拼出来。两边实时同步,你动哪一边 都能马上看到另一边的变化。
它把容易踩坑的细节都处理掉了。重复的键比如 `tag=red&tag=blue` 会合并成 JSON 数组 `["red","blue"]`,而不是悄悄丢掉一个。方括号约定 `a[b]=c`、 `a[b][c]=d` 会展开成真正的嵌套对象,`list[]=x&list[]=y` 会变成数组。 百分号编码(`%20`、`%2F`、`%E4%BD%A0`)和 `+` 代表空格的写法在解析时 解码、在生成时用 `encodeURIComponent` 重新编码,来回转一遍数据不会坏。 空值(`flag=`)和光秃秃的键(`debug`)都会保留,不会被扔掉。
反方向,一个 JSON 对象会序列化回规范的 query string:数组变成重复键 (或者 `key[]`,你自己选),嵌套对象变成方括号路径,每个值都是 URL 安全 的。JSON 写错了会给出清晰的中英文错误提示指到问题处,而不是甩你一个白屏。 全部在本地跑 —— 请求一次都不发出,这在你的 query string 带着 session token 或内部跳转地址、不想留在别人服务器日志里时尤其重要。
工具细节
- 输入
- 文本 + 结构化内容
- 页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
- 输出
- 即时结果 + 复制
- 结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
- 隐私
- 浏览器本地处理
- 主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
- 保存 / 分享
- 可分享链接状态
- 关键设置会进入 URL,复制链接后别人能复现同一组参数。
- 性能预算
- 首屏 JS ≤ 10 KB
- 没有声明 WASM 依赖,适合快速打开和移动端使用。
- 适用场景
- 开发运维 · 程序员
- 分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。
怎么用
-
1. 输入
把内容粘贴或拖入工具面板。
-
2. 处理
点击按钮,在浏览器内本地处理,文件不上传。
-
3. 复制 / 下载
一键复制结果或下载到本地。
Query String 与 JSON 互转 适合怎么用
适合穿插在写代码、查问题、做 Review、上线前的小任务里。
适合开发场景
- 格式化、校验、压缩或检查和代码相关的文本。
- 把片段整理好再放进文档、工单、提交或交接材料。
- 不切换工具,快速检查一个小 payload。
开发检查项
- 压缩、混淆这类不可逆处理,先对副本操作。
- 除非确认工具本地处理,不要粘贴密钥和敏感片段。
- 转换后的代码上线前,仍要跑自己的测试或 lint。
下一步可以接着做
这些入口会把当前任务接到更完整的工具链里。
真实使用场景
把抓到的 API 请求变成可编辑的 JSON
你从浏览器 DevTools 的 Network 面板复制了一个 GET 请求,整个 载荷都在 query string 里: `?fields=id,name&include=author&filter[status]=active&page[size]=20`。 肉眼读这个很痛苦。粘进来、打开方括号约定,你就得到一棵干净的 JSON 树 —— `filter.status`、`page.size`、`fields` 列表 —— 真正 看得懂、改得动。在 JSON 里把 `page.size` 改成 50,复制重新拼好 的 query string,粘回你的 HTTP 客户端再发一次请求。不用手数 &符号。
审查并清洗一条带满 UTM 的营销链接
营销工具发来一条链接: `?utm_source=newsletter&utm_medium=email&utm_campaign=spring&ref=&gclid=abc123`。 解析成 JSON,空的 `ref=` 一眼就跳出来,`gclid` 明显是你再分享 前想去掉的点击 ID。在 JSON 面板里删掉这两个键,复制精简后的 query string,链接就干净了。要从零拼 UTM?那是 UTM Builder 的活;这个工具是用来拆解和修正你已经拿到的链接的。
排查一个老是丢参数的跳转
登录跳转本应带着 `?return_to=/dashboard&plan=pro&promo=WELCOME`,但用户落地后 没有 promo。把服务器实际产生的 URL 粘进来解析成 JSON,跟你 预期 URL 的 JSON 并排比。如果解析出的对象里压根没有 `promo`, 说明 bug 在跳转上游;如果有但值是 `WELCOME%2F`,那就是双重 编码问题 —— 这里重新编码后的输出会让它一目了然。
把表单数据改造成另一个后端要的形状
一个服务要扁平键(`name=ada&role=admin`),另一个要嵌套方括号 (`user[name]=ada&user[role]=admin`)。把扁平字符串解析成 JSON, 在 JSON 编辑器里把对象重组成一个 `user` 块,再打开方括号约定 重新生成。你没手动碰一个百分号就完成了编码迁移,实时预览还会在 你粘到任何地方之前确认新字符串对不对。
给同事一份可分享、已填好的状态
你在调一个状态全存在 query string 里的搜索页: `?q=opus&sort=recent&tags=ai&tags=tools`。在这里调成你想要的 样子,然后复制页面的分享链接 —— query string 输入会跟着进 URL, 同事一打开工具就看到同样解析好的 JSON。配一条 Slack 消息,他 那边看到的就是正确渲染的重复 `tags` 数组,不用他做任何配置。
常见踩坑
字符串里其实用了方括号却忘了打开方括号约定。选项关着时,`user[name]=ada` 会解析成一个名字就字面叫 `user[name]` 的扁平键 —— 如果方括号本来就是键的一部分这是对的,但如果你期待的是嵌套就会意外。读 JSON 前先看一眼开关。
以为长得像数字的值会变成数字。query string 没有类型:`page=2` 解析成字符串 `"2"` 而不是数字 `2`,因为猜着转数字可能悄悄改坏数据(前导零、大整数)。后端要真数字的话,解析后自己转。
分享了一段带密钥的 query string。为了分享功能,输入会存进页面 URL,所以字符串里的 session token 或签名跳转会留在你粘链接那个地方的访问日志里。任何敏感内容请直接复制 JSON 或 query string 文本,别用分享链接。
隐私说明
解析、序列化、JSON 格式化全是浏览器标签页里跑的纯 JavaScript。 query string、JSON、以及你转过什么的任何记录,都不会发到服务器。 你的选项设置(方括号约定、数组写法)只存在这个浏览器的 localStorage 里。唯一要留意:为了"分享链接"功能,query string 输入会编码进页面 URL,所以你把链接粘到别处时,对方的访问日志会 看到这个字符串。带 token、session id 或签名跳转的 query string, 请直接复制文本,别分享 URL。
常见问题
类似工具组合
做你这行的人, 还会一起用这些。