此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

TrustedHTML:toJSON() 方法

基线 2026
最近可用

自 2026年2月 起,此特性已在最新浏览器中得到支持。但在较旧的设备或浏览器中可能无法运行。

备注: 此特性在 Web Worker 中可用。

TrustedHTML 接口的 toJSON() 方法返回一个表示 TrustedHTML 对象的字符串。这与 TrustedHTML.toString() 返回的字符串相同。

在 JSON 序列化过程中遇到 TrustedHTML 对象时,JSON.stringify() 会自动调用此方法。序列化后的值随后可以在 JSON.parse() 的 reviver 函数中使用 TrustedTypePolicy.createHTML() 方法转换回来,这会再次对其运行策略的转换函数。

语法

js
toJSON()

参数

无。

返回值

一个字符串。

示例

直接调用 toJSON()

此示例创建了一个 TrustedHTML 对象。直接调用 toJSON() 会返回其存储的字符串值。

js
const escapeHTMLPolicy = trustedTypes.createPolicy("myEscapePolicy", {
  createHTML: (string) => string.replace(/</g, "&lt;"),
});

const escaped = escapeHTMLPolicy.createHTML("<img src=x onerror=alert(1)>");

const json = escaped.toJSON();
console.log(json); // 与 escaped.toString() 的值相同
console.log(typeof json); // "string"

序列化为 JSON 字符串

上一个示例中的 TrustedHTML 对象使用 JSON.stringify() 进行序列化,它会自动调用 toJSON() 方法。

js
console.log(JSON.stringify(escaped));

这会输出以下 JSON 字符串,其中包含外围的双引号(属于字符串内容的一部分):

json
"&lt;img src=x onerror=alert(1)>"

规范

规范
Trusted Types
# dom-trustedhtml-tojson

浏览器兼容性