我是编码初学者,我正在尝试编写一个代码来比较两个上传的 .JSON 文件,但我不知道如何获取 .JSON 文件的值。
如果我使用 file1.value => 它只是显示文件的路径,如 C://fakepath//
我想获取文件的内容
这是我目前的代码
<input type="file" id="file1" name="file1">
<input type="file" id="file2" name="file2">
<button class="check">check</button>
<div class="output-container">
<pre id="output1"></pre>
<pre id="output2"></pre>
</div>
const file1 = document.querySelector("#file1");
const file2 = document.querySelector("#file2");
const check = document.querySelector('.check');
check.addEventListener('click', compare);
// let json1, json2 = false;
file1.addEventListener("change", function () {
let fr = new FileReader();
const output1 = document.getElementById("output1");
fr.onload = function () {
output1.textContent = fr.result;
};
fr.readAsText(this.files[0]);
});
file2.addEventListener("change", function () {
let fr = new FileReader();
const output2 = document.getElementById("output2");
fr.onload = function () {
output2.textContent = fr.result;
};
fr.readAsText(this.files[0]);
});
function getDifference(o1, o2) {
var diff = {};
var tmp = null;
if (JSON.stringify(o1) === JSON.stringify(o2)) return true;
for (var k in o1) {
if (Array.isArray(o1[k]) && Array.isArray(o2[k])) {
tmp = o1[k].reduce(function(p, c, i) {
var _t = getDifference(c, o2[k][i]);
if (_t)
p.push(_t);
return p;
}, []);
if (Object.keys(tmp).length > 0)
diff[k] = tmp;
} else if (typeof(o1[k]) === "object" && typeof(o2[k]) === "object") {
tmp = getDifference(o1[k], o2[k]);
if (tmp && Object.keys(tmp) > 0)
diff[k] = tmp;
} else if (o1[k] !== o2[k]) {
diff[k] = o2[k]
}
}
return diff;
}
// var d = getDifference(output1.textContent, output2.textContent);
// console.log(d);
// console.log(output1);
// console.log(output2.textContent);