📜  如何使用文件输入 html 读取 json 文件 - Javascript (1)

📅  最后修改于: 2023-12-03 14:52:05.448000             🧑  作者: Mango

如何使用文件输入 HTML 读取 JSON 文件 - Javascript

在前端开发中,经常需要从本地文件中读取数据。这篇文章将介绍如何使用文件输入 HTML 读取 JSON 文件,使用 Javascript 实现。

步骤一:HTML 文件

首先,需要有一个 HTML 文件作为载体来展示读取到的 JSON 数据。在 HTML 文件中添加一个空的 <div> 标签来显示数据:

<body>
  <div id="output"></div>
</body>
步骤二:JSON 文件

第二步是准备好要读取的 JSON 文件。假设我们有一个名为 data.json 的文件,其中包含以下内容:

{
  "name": "John Doe",
  "age": 30,
  "city": "New York"
}
步骤三:使用 XHR 对象请求 JSON 文件

接下来,需要使用 XHR 对象来请求 JSON 文件。XHL 是 XMLHttpRequest 的缩写,它是一个可用于浏览器和 Node.js 的 JavaScript API,用于向服务器发送 HTTP 请求和接收响应。

以下是使用 XHR 对象读取 JSON 文件的示例代码:

const xhr = new XMLHttpRequest();
xhr.open('GET', 'data.json');
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    const response = xhr.responseText;
    console.log(response);
    // 输出: {"name": "John Doe", "age": 30, "city": "New York"}
  }
};
xhr.send();

这段代码创建了一个 XHR 对象,使用 open() 方法打开一个 GET 请求,然后在 onreadystatechange 回调函数中检查状态是否成功,如果成功,把响应的数据存入 response 变量中,并在控制台中显示出来。

步骤四:将 JSON 数据解析为 JavaScript 对象

在上一步中,我们已经可以读取 JSON 文件的内容。但是,由于 JSON 数据本质上是字符串,需要先解析为 JavaScript 对象,才能在页面上显示。

以下是将 JSON 字符串解析为 JavaScript 对象的示例代码:

const xhr = new XMLHttpRequest();
xhr.open('GET', 'data.json');
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    const response = xhr.responseText;
    const data = JSON.parse(response);
    console.log(data);
    // 输出: {name: "John Doe", age: 30, city: "New York"}
  }
};
xhr.send();

这段代码使用了 JSON.parse() 方法将字符串解析成 JavaScript 对象。然后,在控制台中显示出来,以验证解析结果是否正确。

步骤五:显示数据

现在我们已经可以从 JSON 文件中读取数据,并将其解析为 JavaScript 对象。下一步是将数据显示在 HTML 中。

const xhr = new XMLHttpRequest();
xhr.open('GET', 'data.json');
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    const response = xhr.responseText;
    const data = JSON.parse(response);
    const output = document.getElementById('output');
    output.innerHTML = `Name: ${data.name}, Age: ${data.age}, City: ${data.city}`;
  }
};
xhr.send();

这段代码首先获取 output 元素,然后使用 innerHTML 属性在其中插入数据。这个 innerHTML 属性可以将字符串作为 HTML 插入元素中,这里我们将 data 对象的三个属性插入。

整合以上步骤

现在我们已经了解了如何使用文件输入 HTML 读取 JSON 文件,现在可以把上面的所有步骤整合起来。

const xhr = new XMLHttpRequest();
xhr.open('GET', 'data.json');
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    const response = xhr.responseText;
    const data = JSON.parse(response);
    const output = document.getElementById('output');
    output.innerHTML = `Name: ${data.name}, Age: ${data.age}, City: ${data.city}`;
  }
};
xhr.send();

如上所示,这段代码将得到名为 data.json 的文件并在浏览器中显示其数据,该文件包含以下内容:

{
  "name": "John Doe",
  "age": 30,
  "city": "New York"
}

innerHTML 属性将把这条数据显示在 HTML 页面上:

<body>
  <div id="output">Name: John Doe, Age: 30, City: New York</div>
</body>
总结

在这篇文章中,我们学习了如何使用文件输入 HTML 读取 JSON 文件。这个过程需要几个步骤,包括:

  • 创建一个空的 <div> 元素作为数据输出位置;
  • 准备好要读取的 JSON 文件并用 XHR 对象请求它;
  • 将 JSON 字符串解析为 JavaScript 对象;
  • 最后将数据插入 HTML 元素中以显示在页面上。

通过这种方式,我们可以快速、简便地读取 JSON 文件,并将其数据在网页上显示。