编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 网络工具 / 查询字符串解析

查询字符串解析

URL 查询参数与 JSON 双向互转

输入(查询字符串 或 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”,说的都是这个。

常见使用场景

使用方法

  1. 把内容粘贴到输入框(生成类工具直接设置选项)。
  2. 按需要选择选项,点操作按钮。
  3. 结果出现在下方,点「复制结果」即可带走。

常见问题

只能输入参数部分,还是可以直接粘贴完整网址?
都支持。可以粘贴完整 URL、以 ? 开头的部分,或直接是 a=1&b=2 这样的纯查询串,工具会自动定位到参数部分再做解析。
参数里的中文和 %xx 编码会自动还原吗?
会。解析时对每个键值做 decodeURIComponent,按 UTF-8 把 %E4%B8%AD 之类的转义序列还原成中文,+ 号还原为空格;反向输出 query string 时则自动做 encodeURIComponent 编码。
出现同名参数(如 a=1&a=2)会怎么处理?
会归并成数组,结果里 a 是 ["1","2"],而不是让后出现的值覆盖前面的,方便处理列表类参数。
解析时报 URI malformed / 解码失败是什么原因?
通常是查询串里有不合法的百分号转义,比如单独的 % 或被截断的 %E4。decodeURIComponent 遇到这种序列会抛错,检查一下是不是复制时漏了字符。
能把 a[b]=1 这种方括号嵌套解析成嵌套对象吗?
不会。方括号嵌套没有统一标准,不同框架结果不同,本工具按标准键值对处理、同名键归并为数组,不会把 a[b] 解析成 {a:{b:1}} 这种嵌套结构。

相关工具

查看全部「网络工具」工具 →