JavaScript:从本地读取JSON
我想用JavaScript从本地读取JSON文件。文件名为“posts.json”,内容如下:JavaScript:从本地读取JSON,javascript,json,web-deployment-project,Javascript,Json,Web Deployment Project,我想用JavaScript从本地读取JSON文件。文件名为“posts.json”,内容如下: { "post0": "<empty>", //1 "post1": "<empty>", //2 "post2": "<empty>", //3 "post3": "<empty
{
"post0": "<empty>", //1
"post1": "<empty>", //2
"post2": "<empty>", //3
"post3": "<empty>", //4
"post4": "<empty>", //5
"post5": "<empty>", //6
"post6": "<empty>", //7
"post7": "<empty>", //8
"post8": "<empty>", //9
"post9": "<empty>" //10
}
{
“post0”:“”//1
“post1”:“”//2
“post2”:“”//3
“post3”:“”//4
“post4”:“//5
“post5”:“//6
“post6”:“”//7
“post7”:“//8
“post8”:“”//9
“post9”:“//10
}
此外,我想在代码中编辑JSON文件
我怎么做
对于读取JSON文件,您可以执行以下操作:
const fs = require('fs');
let rawdata = fs.readFileSync('posts.json');
let posts = JSON.parse(rawdata);
console.log(posts);
const fs = require('fs');
let posts = {
"post0": "<empty>", //1
"post1": "<empty>", //2
"post2": "<empty>", //3
"post3": "<empty>", //4
"post4": "<empty>", //5
"post5": "<empty>", //6
"post6": "<empty>", //7
"post7": "<empty>", //8
"post8": "<empty>", //9
"post9": "<empty>" //10
};
fs.writeFile('posts.json', posts, (err) => {
if (err) throw err;
console.log('Data written to file');
});
要编辑JSON文件,可以执行以下操作:
const fs = require('fs');
let rawdata = fs.readFileSync('posts.json');
let posts = JSON.parse(rawdata);
console.log(posts);
const fs = require('fs');
let posts = {
"post0": "<empty>", //1
"post1": "<empty>", //2
"post2": "<empty>", //3
"post3": "<empty>", //4
"post4": "<empty>", //5
"post5": "<empty>", //6
"post6": "<empty>", //7
"post7": "<empty>", //8
"post8": "<empty>", //9
"post9": "<empty>" //10
};
fs.writeFile('posts.json', posts, (err) => {
if (err) throw err;
console.log('Data written to file');
});
要读取JSON文件,可以执行以下操作:
const fs = require('fs');
let rawdata = fs.readFileSync('posts.json');
let posts = JSON.parse(rawdata);
console.log(posts);
const fs = require('fs');
let posts = {
"post0": "<empty>", //1
"post1": "<empty>", //2
"post2": "<empty>", //3
"post3": "<empty>", //4
"post4": "<empty>", //5
"post5": "<empty>", //6
"post6": "<empty>", //7
"post7": "<empty>", //8
"post8": "<empty>", //9
"post9": "<empty>" //10
};
fs.writeFile('posts.json', posts, (err) => {
if (err) throw err;
console.log('Data written to file');
});
要编辑JSON文件,可以执行以下操作:
const fs = require('fs');
let rawdata = fs.readFileSync('posts.json');
let posts = JSON.parse(rawdata);
console.log(posts);
const fs = require('fs');
let posts = {
"post0": "<empty>", //1
"post1": "<empty>", //2
"post2": "<empty>", //3
"post3": "<empty>", //4
"post4": "<empty>", //5
"post5": "<empty>", //6
"post6": "<empty>", //7
"post7": "<empty>", //8
"post8": "<empty>", //9
"post9": "<empty>" //10
};
fs.writeFile('posts.json', posts, (err) => {
if (err) throw err;
console.log('Data written to file');
});
由于本地文件对脚本语言的限制,我怎么知道可以从服务器加载文件。您可以在本地文件夹中快速设置Web服务器e.q.:
npm i http-server
然后使用以下命令执行:
npm http-server .
它将打开一个localhost:8080,其中显示索引文件。
然后可以通过XMLHttpRequest或JS文件顶部的导入加载json文件。
要编辑加载的文件,可以对其进行分析:
JSON.parse(file-content);
由于本地文件对脚本语言的限制,我怎么知道可以从服务器加载文件。您可以在本地文件夹中快速设置Web服务器e.q.:
npm i http-server
然后使用以下命令执行:
npm http-server .
它将打开一个localhost:8080,其中显示索引文件。
然后可以通过XMLHttpRequest或JS文件顶部的导入加载json文件。
要编辑加载的文件,可以对其进行分析:
JSON.parse(file-content);
首先,您不能使用javascript访问本地目录中的文件。 其次,您可以访问托管在任何服务器上的文件,包括本地主机(通过web URL)。我假设你是在IIS或nodeJs中托管你的应用程序,那么下面的代码就可以了。注意:此处的URL是相对于应用程序的根目录的
// Alias url: http://localhost:4200/post.json
$.getJSON( "posts.json", function( json ) {
console.log( "JSON Data: " + json);
console.log( "particular data Data: " + json.post0 );
});
您可以像下面这样修改内存中的数据,并在任何地方使用它
$.getJSON( "posts.json", function( json ) {
console.log( "JSON Data: " + json);
json.post0 = 'Another value' );
});
但这不会更新您的文件。您可以对服务器端进行另一个ajax调用,您的服务器端技术(.net、java或NodeJs)将更新该文件
注意:这里我使用jquery。您可以使用适当的技术。首先,您不能使用javascript访问本地目录中的文件。 其次,您可以访问托管在任何服务器上的文件,包括本地主机(通过web URL)。我假设你是在IIS或nodeJs中托管你的应用程序,那么下面的代码就可以了。注意:此处的URL是相对于应用程序的根目录的
// Alias url: http://localhost:4200/post.json
$.getJSON( "posts.json", function( json ) {
console.log( "JSON Data: " + json);
console.log( "particular data Data: " + json.post0 );
});
您可以像下面这样修改内存中的数据,并在任何地方使用它
$.getJSON( "posts.json", function( json ) {
console.log( "JSON Data: " + json);
json.post0 = 'Another value' );
});
但这不会更新您的文件。您可以对服务器端进行另一个ajax调用,您的服务器端技术(.net、java或NodeJs)将更新该文件
注意:这里我使用jquery。您可以使用适当的技术。您是在开发NodeJS应用程序还是在浏览器中运行的东西?如果您想像嵌入式db一样使用JSON文件,我建议使用typicode中的模块。您是在开发NodeJS应用程序还是在浏览器中运行的东西?如果您想像嵌入式db一样使用JSON文件,我会从typicode推荐模块。嗨,梅格,谢谢你的帮助。它不起作用。我得到以下错误:uncaughttypeerror:fs.readFileSync不是一个函数,如果您使用的是node.js,它就可以工作。如果要在客户端执行此操作,则需要其他模块。您可以访问本文,了解有关如何读取客户端文件的更多信息:如何包含node.js?node.js实际上是另一个需要考虑的问题。当谈到客户端Javascript时,实际上并不需要Node.js,因为Node.js用于后端目的。它基本上是一个JavaScript运行时环境,在web浏览器之外执行JavaScript代码。嘿,梅格,谢谢你的帮助。它不起作用。我得到以下错误:uncaughttypeerror:fs.readFileSync不是一个函数,如果您使用的是node.js,它就可以工作。如果要在客户端执行此操作,则需要其他模块。您可以访问本文,了解有关如何读取客户端文件的更多信息:如何包含node.js?node.js实际上是另一个需要考虑的问题。当谈到客户端Javascript时,实际上并不需要Node.js,因为Node.js用于后端目的。它基本上是一个JavaScript运行时环境,在web浏览器之外执行JavaScript代码。