在uBlock Origin中,'json-prune' 和 'json-edit' 有什么区别?

前端开发 2026-07-09

uBlock Origin有名为 json-prunejson-edit 的脚本片段。

json-prune的文档指出:

拦截对 JSON.parse()Response.json() 的调用。如果解析结果是一个对象,则在将结果返回给调用方之前,从结果中移除指定的属性。

json-edit的文件中说明:

通过 JSON.parse() 生成的对象进行编辑。属性只能被移除。

两者似乎都用于从JSON对象中移除属性。它们之间有什么区别?为什么要使用其中一个而不是另一个?

解决方案

看起来它们做的事情类似,只是参数格式不同。

用于 json-edit 的参数是一个带有uBO风格的 JSONPath 查询。JSONPath对 JSON的关系就像XPath对 XML,一些语法也有相似之处。

用于 json-prune 的参数是一个用空格分隔的要移除的属性名列表。

json-prune 还包含一些额外的可选参数:

  • 一个必须全部出现才能执行任何裁剪的属性名的空格分隔列表,或者一个字符串/正则表达式,用于匹配字符串化的JSON以过滤日志。
  • 一个与调用栈匹配的字符串或正则表达式。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章