我试图将一个.json文件加载到javascript中的一个变量中,但是我不能让它工作。这可能只是一个小错误,但我找不到它。
当我像这样使用静态数据时,一切都很好:
var json = {
id: "whatever",
name: "start",
children: [{
"id": "0.9685",
"name": " contents:queue"
}, {
"id": "0.79281",
"name": " contents:mqq_error"
}
}]
}
我将{}
中的所有内容都放在一个content.json
文件中,并尝试将其加载到一个本地JavaScript变量中,如下所示:load json into variable。
var json = (function() {
var json = null;
$.ajax({
'async': false,
'global': false,
'url': "/content.json",
'dataType': "json",
'success': function(data) {
json = data;
}
});
return json;
})();
我用Chrome调试器运行它,它总是告诉我变量json
的值是null
。content.json
文件与调用它的.js文件位于同一目录中。
我错过了什么?
发布于 2018-11-27 22:49:12
内置的node.js module fs将根据您的需要以异步或同步方式执行此操作。
您可以使用var fs = require('fs');
加载它
异步
fs.readFile('./content.json', (err, data) => {
if (err)
console.log(err);
else {
var json = JSON.parse(data);
//your code using json object
}
})
同步
var json = JSON.parse(fs.readFileSync('./content.json').toString());
发布于 2021-01-28 00:04:09
不需要或fs的解决方案:
var json = []
fetch('./content.json').then(response => json = response.json())
发布于 2020-06-11 03:47:44
对于文件~/my-app/src/db/abc.json中给定的json格式:
[
{
"name":"Ankit",
"id":1
},
{
"name":"Aditi",
"id":2
},
{
"name":"Avani",
"id":3
}
]
为了导入到~/my-app/src/app.js这样的.js文件:
const json = require("./db/abc.json");
class Arena extends React.Component{
render(){
return(
json.map((user)=>
{
return(
<div>{user.name}</div>
)
}
)
}
);
}
}
export default Arena;
输出:
Ankit Aditi Avani
https://stackoverflow.com/questions/14484613
复制相似问题