【发布时间】:2021-10-29 13:25:41
【问题描述】:
我正在尝试将 json 解析为 html,但是我不确定我做错了什么。 你们能帮我解决这个问题吗?
它最终会放在桌子上。
很高兴在这里了解我做错了什么。
我知道有很多关于 json 解析的帖子,但是我找不到显示这种类型 json 的方法?
看起来像 [![在此处输入图片描述][1]][1]
function readTextFile(file, callback) {
var rawFile = new XMLHttpRequest();
rawFile.overrideMimeType("application/json");
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4 && rawFile.status == "200") {
callback(rawFile.responseText);
}
}
rawFile.send(null);
}
//usage:
readTextFile("https://assets.cmcmarkets.com/json/cmc-test-most-popular-feed.json", function(text) {
var data = JSON.parse(text);
//console.log(data);
var obj = JSON.parse(text, function(key, value) {
const name = value == "name",
code = document.querySelector('.code'),
spread = document.querySelector('.spread');
cellA = document.querySelector('.cellA');
cellA.innerHTML = key;
// name.innerHTML = `<div>movement: ${data[key]["name"]}</div>`;
// code.innerHTML = `<div>movement: ${data[key]["code"]}</div>`;
// spread.innerHTML = `<div>movement: ${data[key]["spread"]}</div>`;
// cellA.innerHTML = `<div>movement: ${data[key]["1day"]}</div>`;
if (value == "name") {
document.querySelector('.name').innerHTML = `<div>Name: ${data[key]["name"]}</div>`;
}
if (value == "1day") {
cellA.innerHTML = `<div>movement: ${data[key]["movement"]}</div><div>price: ${data[key]["price"]}</div>`;
}
console.log(key);
});
});
<div class="name"></div>
<div class="code"></div>
<div class="spread"></div>
<div class="cellA"></div>
【问题讨论】:
-
你的目标是什么?
-
document.querySelector('.name')选择第一个具有“名称”类的元素,但您的 div 只有 id。我想你想要document.querySelector('#name') -
Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')你的选择器错误,应该是'#cellA',而不是'.cellA' -
@JeremyThille 谢谢,对不起,我忘了更新那里的 html。是的,即使进行了更改,也没有将正确的数据拉入 html
-
@user1599011 谢谢,愚蠢的我忘了把 id 改成 class。还是不行
标签: javascript html json