Node.js querystring.stringify() 方法
querystring.stringify() 方法用于从包含键值对的给定对象生成 URL 查询字符串。该方法遍历对象自己的属性以生成查询字符串。
它可以序列化单个或一组字符串、数字和布尔值。任何其他类型的值都被强制为空字符串。
在序列化过程中,UTF-8 编码格式用于对任何需要百分比编码的字符进行编码。要使用替代字符编码进行编码,必须指定encodeURIComponent
选项。
句法:
querystring.stringify( obj[, sep[, eq[, options]]] )
参数:该函数接受上面提到的四个参数,如下所述:
- obj:它是一个必须序列化为 URL 查询字符串的对象。
- sep:它是一个字符串,它指定用于分隔查询字符串中的键值对的子字符串。默认值为“&”。
- eq:它是一个String,它指定用于分隔查询字符串中的键和值的子字符串。默认值为“=”。
- options:它是一个对象,可用于修改方法的行为。它具有以下参数:
- encodeURIComponent:它是一个函数,用于将 URL 不安全字符转换为查询字符串中的百分比编码。默认值为
querystring.escape()
。
- encodeURIComponent:它是一个函数,用于将 URL 不安全字符转换为查询字符串中的百分比编码。默认值为
返回值:它返回一个字符串,其中包含从给定对象生成的 URL 查询。
下面的程序说明了 Node.js 中的querystring.stringify()方法:
示例 1:
// Import the querystring module
const querystring = require("querystring");
// Specify the URL object
// to be serialized
let urlObject = {
user: "sam",
access: true,
role: ["admin", "editor", "manager"],
};
// Use the stringify() method on the object
let parsedQuery = querystring.stringify(urlObject);
console.log("Parsed Query:", parsedQuery);
输出:
Parsed Query: user=sam&access=true&role=admin&role=editor&role=manager
示例 2:
// Import the querystring module
const querystring = require("querystring");
// Specify the URL object
// to be serialized
let urlObject = {
user: "max",
access: false,
role: ["editor", "manager"],
};
// Use the stringify() method on the object
// with sep as `, ` and eq as `:`
let parsedQuery = querystring.stringify(urlObject, ", ", ":");
console.log("Parsed Query 1:", parsedQuery);
// Use the stringify() method on the object
// with sep as `&&&` and eq as `==`
parsedQuery = querystring.stringify(urlObject, "&&&", "==");
console.log("\nParsed Query 2:", parsedQuery);
输出:
Parsed Query 1: user:max, access:false, role:editor, role:manager
Parsed Query 2: user==max&&&access==false&&&role==editor&&&role==manager
参考: https://nodejs.org/api/querystring.html#querystring_querystring_stringify_obj_sep_eq_options