查询字符串解析
URL 查询参数与 JSON 双向互转
这个工具能做什么
查询字符串解析工具做的事很直接:把 URL 里 ? 后面那串 a=1&b=2&c=3 拆成一份结构化的 JSON,或者反过来,把一个 JSON 对象拼成标准的 query string。平时调接口、看日志、排查线上问题时,地址栏或抓包工具里动辄几十个参数挤在一行,中间还夹着 %2F、%E4%B8%AD 这类被 URL 编码过的片段,肉眼在 & 和 = 之间数参数、还原原文既慢又容易看错。把整条网址粘进来,它会自动完成 url参数解析并 decodeURIComponent 解码,一眼就能看清每个键对应的真实值。
它的工作方式贴合浏览器和 Node 里 querystring 的通行约定。解析时先定位到 ? 之后的部分(没有 ? 的纯参数串也能直接吃),按 & 切分成一个个键值对,每对再按第一个 = 分成 key 与 value,两边分别做 decodeURIComponent,于是 + 号还原成空格、%xx 转义序列按 UTF-8 还原成中文或其他多字节字符。反向的参数转json 逆过程则是遍历 JSON 的每个字段,对键和值做 encodeURIComponent 编码后用 = 连接、再用 & 串起来。遇到 a=1&a=2 这类同名参数,解析时会自动归并成数组,避免后出现的值把前面的覆盖掉。
最常见的用法是调试。比如从 Charles 或浏览器开发者工具里复制一整条带 OAuth 回调的 URL,里面的 redirect_uri 被层层编码,直接读根本对不上,粘进来解析成 JSON 后,redirect_uri、state、code 各是什么值一目了然,方便核对回调地址是否正确。另一个方向是造数据:写单元测试或 mock 请求时手拼 query string 容易漏掉编码,把一个现成的 JSON 对象丢进来,几秒就能得到编码规范的 a=1&b=2 形式,直接拿去发请求。日志里那些被转义的参数也一样,贴进来就能还原成可读文本对照排查。
有几个边界值得留意。decodeURIComponent 对不合法的百分号序列(比如单独一个 % 或残缺的 %E4)会直接抛错,这时先检查是不是复制时截断了,而不是工具的问题。同名键归并成数组是按出现顺序处理的,但 a[b]=1 这种方括号嵌套写法各框架约定并不统一(PHP、qs、传统 querystring 结果都不一样),本工具按标准键值对与重复键归并来处理,不额外把方括号解析成嵌套对象,需要深层嵌套结构时请留意。它和 JSON 格式化、Base64 编解码是不同工具:这里只负责 querystring 与 JSON 的互转以及 URL 编解码,不做 Base64 或哈希。所有转换都在浏览器本地完成,不上传任何数据。
查询字符串解析是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“查询字符串”、“url参数解析”、“querystring”,说的都是这个。
常见使用场景
- 把抓包到的长 URL 参数拆开逐项核对
- 还原地址栏里被编码的中文参数看清原文
- 调接口时把 JSON 快速拼成规范的 query 串
- 排查回调 URL 里 redirect_uri 的真实值
- 对比两条请求的参数找出差异
使用方法
- 把内容粘贴到输入框(生成类工具直接设置选项)。
- 按需要选择选项,点操作按钮。
- 结果出现在下方,点「复制结果」即可带走。