跳到主要内容

JSON 转 Query String

把 JSON 对象拼成 URL query string,数组三种写法、嵌套对象走方括号、可排序可跳空,还能转回 JSON,全程浏览器本地

  • 本地处理
  • 分类 开发运维
  • 适合 格式化、校验、压缩或检查和代码相关的文本。
数组写法
JSON 对象
Query string

这个工具能做什么

从一个 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. 1. 输入

    把内容粘贴或拖入工具面板。

  2. 2. 处理

    点击按钮,在浏览器内本地处理,文件不上传。

  3. 3. 复制 / 下载

    一键复制结果或下载到本地。

JSON 转 Query String 适合怎么用

适合穿插在写代码、查问题、做 Review、上线前的小任务里。

适合开发场景

  • 格式化、校验、压缩或检查和代码相关的文本。
  • 把片段整理好再放进文档、工单、提交或交接材料。
  • 不切换工具,快速检查一个小 payload。

开发检查项

  • 压缩、混淆这类不可逆处理,先对副本操作。
  • 除非确认工具本地处理,不要粘贴密钥和敏感片段。
  • 转换后的代码上线前,仍要跑自己的测试或 lint。

下一步可以接着做

这些入口会把当前任务接到更完整的工具链里。

  1. 1 Query String 与 JSON 互转 把 URL query string 解析成 JSON,或从 JSON 生成 query string(双向、实时、支持数组与嵌套对象约定),全程浏览器本地 打开
  2. 2 URL 编码 / 解码 把空格、中文、emoji 等特殊字符转 %xx 百分号编码,或反向解码,全程浏览器本地 打开
  3. 3 URL 参数提取器 本地提取、去重、查看、复制和导出一个或多个 URL 的 query 参数。 打开

真实使用场景

  • 拿已有的配置对象拼出请求 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。

常见问题

类似工具组合

做你这行的人, 还会一起用这些。

Made by Toolora · 100% client-side · Updated 2026-06-13