首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将本地JSON文件加载到变量中

将本地JSON文件加载到变量中
EN

Stack Overflow用户
提问于 2013-01-24 00:34:05
回答 4查看 410K关注 0票数 136

我试图将一个.json文件加载到javascript中的一个变量中,但是我不能让它工作。这可能只是一个小错误,但我找不到它。

当我像这样使用静态数据时,一切都很好:

代码语言: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

代码语言:javascript
复制
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的值是nullcontent.json文件与调用它的.js文件位于同一目录中。

我错过了什么?

EN

回答 4

Stack Overflow用户

发布于 2018-11-27 22:49:12

内置的node.js module fs将根据您的需要以异步或同步方式执行此操作。

您可以使用var fs = require('fs');加载它

异步

代码语言:javascript
复制
fs.readFile('./content.json', (err, data) => {
    if (err)
      console.log(err);
    else {
      var json = JSON.parse(data);
    //your code using json object
    }
})

同步

代码语言:javascript
复制
var json = JSON.parse(fs.readFileSync('./content.json').toString());
票数 5
EN

Stack Overflow用户

发布于 2021-01-28 00:04:09

不需要或fs的解决方案:

代码语言:javascript
复制
var json = []
fetch('./content.json').then(response => json = response.json())
票数 5
EN

Stack Overflow用户

发布于 2020-06-11 03:47:44

对于文件~/my-app/src/db/abc.json中给定的json格式:

代码语言:javascript
复制
  [
      {
        "name":"Ankit",
        "id":1
      },
      {
        "name":"Aditi",
        "id":2
      },
      {
        "name":"Avani",
        "id":3
      }
  ]

为了导入到~/my-app/src/app.js这样的.js文件:

代码语言:javascript
复制
 const json = require("./db/abc.json");

 class Arena extends React.Component{
   render(){
     return(
       json.map((user)=>
        {
          return(
            <div>{user.name}</div>
          )
        }
       )
      }
    );
   }
 }

 export default Arena;

输出:

代码语言:javascript
复制
Ankit Aditi Avani
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14484613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档