假设我有一个看起来像这样的javascript对象:
var data = {
name: "cliff",
age: "34",
name: "ted",
age: "42",
name: "bob",
age: "12"
}
var jsonData = JSON.stringify(data);
Run Code Online (Sandbox Code Playgroud)
我将其字符串化以转换为JSON.如何将此JSON保存到本地文本文件,以便我可以在记事本等中打开它.
背景:
我想创建一个仅使用JavaScript/HTML的"app",可以直接从文件系统通过浏览器打开.此应用必须能够从其他文件中读取数据.然后我将使用JS来解析它并呈现页面.作为一个简化的例子,假设我有一个CSV文件(在这里下载):
Mark Rodgers,mark.rodgers@company.com,Accounting
[...]
Melissa Jones,melissa@company.com,CEO
Run Code Online (Sandbox Code Playgroud)
我希望能够使用JS读取文件并使用其中的数据来生成我的页面.
到目前为止我所取得的成就:
演示(右键单击 - >"另存为"将HTML保存到您的计算机).它也可以在 jsfiddle中以半破碎的方式使用(布局已经破坏,但它仍然应该在功能上正确).
只需将CSV文本文件拖放到拖放框中,或使用文件菜单选择文本文件,JavaScript将读取,解析文件并填充表格.
这依赖于FileReader API; 大部分繁重的工作都是通过这个功能完成的:
function handleFileSelect(evt) {
evt.stopPropagation();
evt.preventDefault();
var files = evt.target.files || evt.dataTransfer.files; // FileList object.
var file = files[0];
// this creates the FileReader and reads stuff as text
var fr = new FileReader();
fr.onload = parse;
fr.readAsText(file);
// this is the function that actually parses the file
// and populates the table
function parse()
{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试在浏览器中上传一个 XML 文件,然后解析该 XML。在上传的文件上,我可以看到大小正确,但看起来没有数据。
$('#xmlForm').submit(function(event) {
event.preventDefault();
var selectedFile = document.getElementById('input').files[0];
var parser = new DOMParser();
var doc = parser.parseFromString( selectedFile, "text/xml");
console.log(doc);
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="xmlForm">
<input type="file" id="input">
<input type="submit">
</form>Run Code Online (Sandbox Code Playgroud)
解析器基本上对我说:“文档是空的”
我错过了什么?
我有一个我想阅读的文件(words.txt)。我想将它保存在一个数组中,但它太长,无法包含在文件中,所以我将它放在一个单独的文件中。我可以使用 URL 来获取它,但我也将该文件与 javascript 文件放在同一文件夹中。如果不使用 jQuery 或 Node.js,最简单的方法是什么?