我已经在我的本地系统中保存了一个JSON文件,并创建了一个JavaScript文件,以便读取JSON文件并打印数据。以下是JSON文件:
{"resource":"A","literals":["B","C","D"]}
假设这是JSON文件的路径:/Users/Documents/workspace/test.json。
谁能帮我写一段简单的代码来读取JSON文件并用JavaScript打印数据?
我已经在我的本地系统中保存了一个JSON文件,并创建了一个JavaScript文件,以便读取JSON文件并打印数据。以下是JSON文件:
{"resource":"A","literals":["B","C","D"]}
假设这是JSON文件的路径:/Users/Documents/workspace/test.json。
谁能帮我写一段简单的代码来读取JSON文件并用JavaScript打印数据?
当前回答
一个简单的解决方法是将JSON文件放在本地运行的服务器中。为此,从终端转到您的项目文件夹,并在某些端口号上启动本地服务器,例如8181
python -m SimpleHTTPServer 8181
然后浏览到http://localhost:8181/应该会显示您的所有文件,包括JSON。如果您还没有安装python,请记住安装python。
其他回答
正如许多人之前提到的,使用AJAX调用这是行不通的。然而,有一种方法可以绕过它。使用input元素,可以选择您的文件。
所选文件(.json)需要有这样的结构:
[
{"key": "value"},
{"key2": "value2"},
...
{"keyn": "valuen"},
]
<input type="file" id="get_the_file">
然后你可以使用FileReader()使用JS读取文件:
document.getElementById("get_the_file").addEventListener("change", function() {
var file_to_read = document.getElementById("get_the_file").files[0];
var fileread = new FileReader();
fileread.onload = function(e) {
var content = e.target.result;
// console.log(content);
var intern = JSON.parse(content); // Array of Objects.
console.log(intern); // You can index every object
};
fileread.readAsText(file_to_read);
});
您不能对本地资源进行AJAX调用,因为请求是使用HTTP发出的。
一个解决方案是运行一个本地web服务器,提供文件并对localhost进行AJAX调用。
为了帮助你编写代码来读取JSON,你应该阅读jQuery.getJSON()的文档:
http://api.jquery.com/jQuery.getJSON/
如果你能运行本地web服务器(就像Chris P上面建议的那样),如果你能使用jQuery,你可以试试http://api.jquery.com/jQuery.getJSON/
2021解决方案(适用于Chrome 91+)
导入JSON文件的JS文件应该是一个模块:
<script type=“module” src=“script.js”></script>
然后在script.js中导入json文件:
从"./data "导入数据。Json: assert {type: " Json "};
您可以使用console.log(data)检查数据是否已加载
源
当在Node.js中或在浏览器中使用require.js时,你可以简单地做:
let json = require('/Users/Documents/workspace/test.json');
console.log(json, 'the json obj');
注意:文件加载一次,后续调用将使用缓存。