📜  节点 | URL.toJSON() 方法(1)

📅  最后修改于: 2023-12-03 15:41:25.523000             🧑  作者: Mango

节点 | URL.toJSON() 方法

在 Node.js 中,我们可以使用 URL 模块来处理和解析 URL。其中,URL.toJSON() 方法是将 URL 对象转换为 JSON 对象,方便我们在代码中处理和存储 URL。

语法

URL.toJSON() 方法没有参数,调用时直接在 URL 对象上调用即可。

返回值

该方法返回一个表示 URL 对象的 JSON 对象,其中包含以下属性:

  • href:表示完整的 URL。
  • origin:表示 URL 的协议、主机名和端口号。
  • protocol:表示 URL 的协议部分,包含冒号和两个斜杠。
  • username:表示 URL 的用户名部分(如果存在)。
  • password:表示 URL 的密码部分(如果存在)。
  • host:表示 URL 的主机名及端口号部分。
  • hostname:表示 URL 的主机名部分。
  • port:表示 URL 的端口号部分。
  • pathname:表示 URL 的路径部分(包含初始的斜杠)。
  • search:表示 URL 的查询部分(包含初始的问号)。
  • hash:表示 URL 的哈希部分(包含初始的井号)。
示例

以下示例演示如何使用 URL.toJSON() 方法,将 URL 对象转换为 JSON 对象:

const { URL } = require('url');

// 创建一个 URL 对象
const myURL = new URL('https://www.example.com/foo/bar?baz=qux#quux');

// 调用 toJSON() 方法
const jsonURL = myURL.toJSON();

// 输出 JSON 对象
console.log(jsonURL);

输出结果为:

{
  "href": "https://www.example.com/foo/bar?baz=qux#quux",
  "origin": "https://www.example.com",
  "protocol": "https:",
  "username": "",
  "password": "",
  "host": "www.example.com",
  "hostname": "www.example.com",
  "port": "",
  "pathname": "/foo/bar",
  "search": "?baz=qux",
  "hash": "#quux"
}
注意事项
  • 在调用 URL.toJSON() 方法前,需要先定义一个 URL 对象,并使用 new 操作符创建。
  • 该方法返回的是 JSON 对象,需要使用 JSON.stringify() 方法将其转换为字符串后再使用。
  • 如果 URL 对象中存在无法表示为 JSON 的属性(例如 Symbol 类型),则该属性会被忽略。
  • 调用 URL.toJSON() 方法并不会修改原始 URL 对象,仅返回一个新的 JSON 对象。