📅  最后修改于: 2023-12-03 15:01:41.353000             🧑  作者: Mango
在 Web 开发中,查询字符串是指在 URL 地址中以 ?
开头,参数以键值对的形式出现,多个参数之间以 &
分隔的字符串。例如:
https://example.com/?param1=value1¶m2=value2
有时候我们需要从这个查询字符串中获取某个参数的值,而这个查询参数又是一个 JSON 对象的形式。下面是一些用 JavaScript 从查询字符串 JSON 对象中获取参数的方法。
首先,我们可以手动解析 JSON 对象。我们可以从 URL 获取查询字符串,然后用 JSON.parse()
方法将其解析为 JSON 对象。最后,我们可以通过对象的属性名获取对应的参数值。代码如下:
const queryString = window.location.search;
const params = JSON.parse(decodeURIComponent(queryString.substr(1)));
const param1 = params['param1'];
const param2 = params['param2'];
这段代码将会返回解析后的 JSON 对象,并以 param1
和 param2
作为属性名,分别得到它们的值。
注意:
decodeURIComponent
方法是用于解码 URL 中的特殊字符的函数。在这里使用是为了解码查询字符串中的%20
等特殊字符。
从 ECMAScript 6 引入的 URLSearchParams API 可以更容易地获取查询字符串参数。我们可以使用它提供的 get()
和 getAll()
方法获取参数的值。代码如下:
const params = new URLSearchParams(window.location.search);
const param1 = params.get('param1');
const param2 = params.get('param2');
这段代码将会返回解析后的 URLSearchParams
对象,并以 param1
和 param2
作为键名,分别得到它们的值。
除了手动解析和使用 URLSearchParams
API,我们还可以使用一些第三方库来解析查询字符串 JSON 对象。比如 Qs 和 query-string。它们的使用方法类似于方法一,只是需要额外导入库后使用。
以上就是从查询字符串 JSON 对象中获取参数的一些方法,可以根据实际情况灵活选择。