JavaScript访问本地json
因此,我有一个包含模拟数据的JSON文件:JavaScript访问本地json,javascript,json,reactjs,frontend,create-react-app,Javascript,Json,Reactjs,Frontend,Create React App,因此,我有一个包含模拟数据的JSON文件: { “姓名”:“哈维·斯佩克特”, “地点”:“美国纽约”, “图片”:“, “喜欢”:121, “以下”:723, “追随者”:4433, “评论”:[ { “id”:0, “作者”:{ “图片”:“, “姓名”:“迈克·罗斯” }, “日期”:“日期”, “正文”:” }, { “id”:1, “作者”:{ “图片”:“, “姓名”:“Rachel Zein” }, “日期”:“日期”, “正文”:” }, { “id”:2, “作者”:{ “图
{
“姓名”:“哈维·斯佩克特”,
“地点”:“美国纽约”,
“图片”:“,
“喜欢”:121,
“以下”:723,
“追随者”:4433,
“评论”:[
{
“id”:0,
“作者”:{
“图片”:“,
“姓名”:“迈克·罗斯”
},
“日期”:“日期”,
“正文”:”
},
{
“id”:1,
“作者”:{
“图片”:“,
“姓名”:“Rachel Zein”
},
“日期”:“日期”,
“正文”:”
},
{
“id”:2,
“作者”:{
“图片”:“,
“姓名”:“路易斯·利特”
},
“日期”:“日期”,
“正文”:”
}
]
}
出于开发目的,您只需将数据添加为常规变量,如下所示:
var myData = JSON.parse( { "data" : "test test test" });
function getData() { return Promise.resolve(myData) }
如果要使用API进行模拟,则可以使函数返回如下承诺:
var myData = JSON.parse( { "data" : "test test test" });
function getData() { return Promise.resolve(myData) }
然后您可以像(封装的)API调用一样使用它,如下所示:
getData()
.then(resolvedData => console.log('my data is', resolvedData)
我如何通过javascript访问它,并在我的
水疗中心
您可以使用fetch
方法发出请求
,以便从文件中获取数据
fetch("data.json")
.then( (response) => {
return response;
}).then( (json) => {
//do whatever
});
或者使用native
javascript请求
如果您想从本地
文件中读取。使用require
语句
var data = require('../../data.json');
for(var i = 0; i < data.length; i++) {
//iterate data
然后使用fetch
方法将新对象保存到server-side
。如下创建对象:
let objRef = {name: "Harvey Specter"
,location: "New York, USA"
,picture: ""
,likes: 121
,following: 723
,followers: 4433
,comments:[{id: 0
,author: {picture: ""
,name: "Mike Ross" }
,date: ""
,body: "" }
,{id: 1
,author: {picture: ""
,name: "Rachel Zein" }
,date: ""
,body: "" }
,{id: 2
,author: {picture: ""
,name: "Louis Litt" }
,date: ""
,body: "" }]};
关于如何参考的一些示例:
alert( objRef["name"] );
alert( objRef["comments"][0]["author"]["name"] );
要做到这一点,您需要运行一个后端,它对数据执行所有的transfsforms。
这样做有几个非常令人信服的理由
首先是安全问题。我不希望一个网站只是从我的电脑上下载文件,更不希望他们在没有我明确同意的情况下将文件保存到我的驱动器上
其次,如果您的所有用户都有此文件的本地副本,他们现在会如何了解对您的文件所做的任何更改
因此,您需要一个后端来维护这些数据,最好是在数据库中。因为这比任何基于文件的数据存储都要快。
现在您有了一些选择,但是看到您正在做一个基于javascript的项目,我建议您使用,这是一个在服务器上运行的javascript。
对于一个数据库,如果您的数据不会变得更高级,您可以选择一个简单的、易于访问的方法。或者,如果您需要更多的关系映射,您可以选择使用。
您可以通过RESTAPI获得所有转换,例如使用。
或者,您可以选择使用websockets和库进行实时操作
但是,让客户端应用程序进行文件转换是不可能的。由于安全原因,在没有用户交互的情况下,您无法从磁盘加载本地文件。那么我该如何解决这个问题呢?@AdamMarczyk,您在服务器端使用什么技术?使用服务器。或者让用户使用文件输入选择文件。我不使用服务器端技术。这是我的私人项目。我只做前端(从零开始)我得到一个错误“Uncaught(in promise)SyntaxError:Unexpected token<在JSON中的位置0”@AdamMarczyk,where?而不是//做我刚刚放在控制台上的任何注释。log(JSON)这个错误表明您的JSON格式不正确。检查syntaxI是否已将整个文件粘贴到此处。在我看来这很好