gpt4 book ai didi

javascript - 如何读取json并在html中显示

转载 作者:行者123 更新时间:2023-12-01 01:17:47 25 4
gpt4 key购买 nike

我正在下一些订单,并将订单信息存储在 JSON 文件 (order_details.json) 中。数据如下所示:

[{
"uniqueID": "CHECKOUT_IE01",
"orderID": "4001820182",
"date": "06-02-2019 16:55:32.321",
"cartTotal": "€19.98"
}, {
"uniqueID": "CHECKOUT_DK01",
"orderID": "6001825057",
"date": "06-02-2019 16:56:15.976",
"cartTotal": "318 DKK"
}]

现在我想制作一个 HTML 报告,我可以在其中获取所有这些数据并可以以 html 格式显示。

不知道我必须使用哪种技术。到目前为止我尝试过的是,创建了如下js代码:

var fs = require(['fs']);
var data = fs.readFileSync("D:\\order-detail.json", "utf8");
var data1 = JSON.parse(data);
console.log(data1);
var unique_id = data1[0].uniqueID;
var order_id = data1[0].orderID;
var order_date = data1[0].date;
var cart_total = data1[0].cartTotal;

document.getElementById("uid").innerHTML = unique_id;
document.getElementById("oid").innerHTML = order_id;
document.getElementById("date").innerHTML = order_date;
document.getElementById("ctotal").innerHTML = cart_total;

和 HTML

<body onload="myFunction()">
<h3>Values from Json</h3>
<div>
<span id="uid"></span>
<span id="oid"></span>
<span id="date"></span>
<span id="ctotal"></span>
</div>

但它不起作用,我在控制台中收到以下错误 -

dashboard.html:8 Uncaught TypeError: fs.readFileSync is not a function
at myFunction (dashboard.html:8)
at onload (dashboard.html:25)
myFunction @ dashboard.html:8
onload @ dashboard.html:25
require.js:5 GET file:///D:/JSON/fs.js net::ERR_FILE_NOT_FOUND
req.load @ require.js:5
load @ require.js:5
load @ require.js:5
fetch @ require.js:5
check @ require.js:5
enable @ require.js:5
enable @ require.js:5
(anonymous) @ require.js:5
(anonymous) @ require.js:5
each @ require.js:5
enable @ require.js:5
init @ require.js:5
(anonymous) @ require.js:5
setTimeout (async)
req.nextTick @ require.js:5
o @ require.js:5
requirejs @ require.js:5
myFunction @ dashboard.html:7
onload @ dashboard.html:25
require.js:5 Uncaught Error: Script error for "fs"
http://requirejs.org/docs/errors.html#scripterror
at makeError (require.js:5)
at HTMLScriptElement.onScriptError (require.js:5)

我不确定出了什么问题或者我使用的方式是错误的。任何帮助将不胜感激

最佳答案

我认为您正在将 Node 与普通浏览器 JavaScript 混合在一起。普通 JavaScript 没有 require 的定义,如果有的话,那是因为您正在使用的另一个库已声明它不会执行您所期望的操作。从浏览器加载数据的最简单方法是使用 XMLHttpRequest,下面是一个示例:

loadURL("file:///D:/order-detail.json", onDataLoaded);

function onDataLoaded(data) {
data = JSON.parse(data);
var unique_id = data[0].uniqueID;
var order_id = data[0].orderID;
var order_date = data[0].date;
var cart_total = data[0].cartTotal;

document.getElementById("uid").innerHTML = unique_id;
document.getElementById("oid").innerHTML = order_id;
document.getElementById("date").innerHTML = order_date;
document.getElementById("ctotal").innerHTML = cart_total;
}

function loadURL(url, callBack) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.setRequestHeader("Accept", "application/json");
xhr.onloadend = onLoadEnd(xhr, callBack);
xhr.send();
}

function onLoadEnd(request, callBack) {
return function() {
var status = request.status;
var result = String(request.response);
if (status >= 200 && status < 300) callBack(result);
};
}

出于安全原因,某些浏览器(例如 Chrome)可能会阻止该请求。要解决此问题,请尝试将 JSON 文件添加到 IIS(然后将 file://D:\\order-detail.json 更改为 localhost/addPathHere/order-detail.json)。这是simple tutorial激活您的本地 IIS 服务器(假设您使用的是 Windows)。

关于javascript - 如何读取json并在html中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54568393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com