用于 JSON 读取的 Google Chrome 插件

用于 JSON 读取的 Google Chrome 插件

是否有 Chrome 插件可以在 Chrome 中呈现 JSON 文件?目前 Chrome 只会尝试下载它们,这有点无聊。

答案1

适用于 Chrome 的 JSONView

  • 浏览器内查看器
  • 展开和收缩 JSON 项目
  • 格式验证
  • 不需要 .json 结尾

使能够:

Chrome 扳手按钮 >> 工具 >> 扩展 >> “允许访问文件 URL”

答案2

我迫不及待地等待新的 Chrome API,并使用简单的正则表达式匹配移植了 JSONView。

http://github.com/jamiew/jsonview-chrome

这是一份草稿,但可以正常工作!您可以使用 chrome://extensions 中的“加载未打包的扩展程序”来安装它 - 解决了一些问题,但很快就会将其打包为真正的扩展程序。

为了进一步美化,请查看“XML 树”扩展(超级用户还不允许我发布 2 个链接)

答案3

显然,前段时间有人在 Chromium-extensions Google 小组上询问如何构建这样的扩展,答案是目前还不可能

最近又有人问再次提出同样的问题- 因此,一旦实现 API 支持,这样的扩展似乎很快就会出现。


同时,如果你真的对此感到困扰,你可以安装本地代理(Fiddler2例如,您可以尝试让其将所有响应的 Content-Type 标头(其中“application/json”为“text/plain”)更改为“text/plain” - 并且仅对 Chrome 页面请求执行此操作。这将诱使 Chrome 向您显示 JSON 数据的纯文本视图,而不是尝试下载它。但要小心:这可能会破坏某些 Web 应用程序,这些应用程序预计“application/json” 内容类型。

要使用 Fiddler 实现这一点,只需从 Fiddler 的“规则”菜单中选择“自定义规则”,当 CustomRules.js 文件打开时,将此变量添加到 Handlers 类的开头:

class Handlers
{
    // You have to add these two lines
    public static RulesOption("Show JSON data as plain text in Chrome")
    var m_JSON2Text: boolean = false;

然后在 OnBeforeResponse 方法末尾的右括号之前添加:

    if(m_JSON2Text) {
        var isJson = oSession.oResponse["Content-Type"].indexOf("application/json") != -1;
        var isChrome = oSession.oRequest["User-Agent"].indexOf("Chrome") != -1;
        if(isJson && isChrome) {
            oSession.oResponse["Content-Type"] = "text/plain; ";
        }
    }
    // Next is the closing bracket. Add all lines preceding this comment
}

这会在 Fiddler 的“规则”菜单中添加一个名为“在 Chrome 中以纯文本显示 JSON 数据”的项目,您可以打开/关闭该项目,触发/禁用所需的行为。

开销是必须在浏览时保持 Fiddler2 运行。当然,这是否会引人注目取决于您的硬件/软件配置。

答案4

要显示使用自定义(供应商)MIME 类型提供的 JSON URL,您可以使用JSON视图0.0.32 以及application/...+json|+xml 作为内联0.0.2。

相关内容