我想在 html 中加载一个 json 脚本(本地),用作表格

Posted

技术标签:

【中文标题】我想在 html 中加载一个 json 脚本(本地),用作表格【英文标题】:I want to load a json script (locally) in html, to use as a table 【发布时间】:2021-12-26 01:02:38 【问题描述】:

这是我想从外部调用的 json 文件,它位于我的 html 文件中,位于一个名为“api”的文件夹中,无法编辑,因为在实时环境中我无法编辑。


    "tests": [
        
            "test_id": "ffc22c5e-1743-49de-9fce-c15df8c15fcc",
            "url": "https://www.url1.com",
            "checkrate": 300,
            "alert_expiration": true,
            "alert_errors": true,
            "alert_mixed_content": true,
            "follow_redirects": true,
            "first_expiration_reminder": 30,
            "second_expiration_reminder": 7,
            "third_expiration_reminder": 1
        ,
        
            "test_id": "52744d25-9492-46b6-999d-af2fcdf87296",
            "url": "https://url1.com/",
            "checkrate": 86400,
            "alert_expiration": true,
            "alert_errors": false,
            "alert_mixed_content": true,
            "follow_redirects": true,
            "first_expiration_reminder": 30,
            "second_expiration_reminder": 7,
            "third_expiration_reminder": 1
        ,
        
            "test_id": "25f171b8-f248-4f63-8e89-ae4813149670",
            "url": "https://url3.com/",
            "checkrate": 600,
            "alert_expiration": false,
            "alert_errors": true,
            "alert_mixed_content": true,
            "follow_redirects": true
        
    ],
    "metadata": 
        "total_size": 3
    

这是我尝试过的 JS,但在加载 json 时不起作用,我在我的 HTML 页面顶部使用脚本标记。

var json = require('api/ssltests.json'); //(with path)
var ssltests = '';
      
         $.each(json, function(key, value)
           if(key === 0) 
            ssltests += "<div class=\"row\">";
               $.each(Object.keys(value), function(k, v) 
                ssltests += "<div class=\"cell\">" + v + "</div>";
               );
               ssltests += "</div>";
             
           
             ssltests += "<div class=\"row\">";
               $.each(Object.keys(value), function(k, v) 
                ssltests += "<div class=\"cell\">" + value[v] + "</div>";
               );
               ssltests += "</div>";
      
         );

【问题讨论】:

您必须设置本地服务器。我会推荐 npm 包http-server,它不需要设置。只需在根文件夹中运行npx http-server 【参考方案1】:

您不能在客户端使用require。正如评论中已经提到的,它是 CommonJS 的一部分,可用于服务器端 javascript,通常在 NodeJS 的范围内。更多详情请查看this answer。

如果您想获取其他文件,您必须使用浏览器的fetch API 为您加载文件。正如另一条评论中提到的,要在本地进行测试,您必须生成一个网络服务器。

【讨论】:

【参考方案2】:

使用相对路径 ./ 应该可以工作。

var json = require('./api/ssltests.json');

【讨论】:

require 是 CommonJS,在浏览器中不可用。

以上是关于我想在 html 中加载一个 json 脚本(本地),用作表格的主要内容,如果未能解决你的问题,请参考以下文章

在 WebView 中加载页面之前,用本地 Android 资源替换 HTML 文档的图像

在节点 js 中加载本地 jquery.js 文件

HTML/Javascript:如何访问在带有 src 集的脚本标签中加载的 JSON 数据

在 Angular 2 中加载配置 JSON 文件

无法在 Flutter 中加载本地 JSON 文件

如何在 Javascript 中加载本地 JSON 文件