Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将.js文件中的数据转换为json_Javascript_Json - Fatal编程技术网

Javascript 将.js文件中的数据转换为json

Javascript 将.js文件中的数据转换为json,javascript,json,Javascript,Json,因此,我目前正在进行一个涉及引用整个Pokemon pokedex的项目,当我四处寻找源代码时,我意识到Pokemon摊牌是开源的,因此,存储库中有一个完整的pokedex。但是,当我打开包含的文件时,我发现它并没有设置为json文件,而是完全设置为其他文件 下面是我的问题: 1:存储的数据具体是什么?对象数组? 2:如何将数据转换为JSON或像引用JSON一样引用它(使用键名) 数据存储为JavaScript对象,键是每个口袋妖怪的名称 见下文 从文件中删除下面的代码,并将文件名更改为.jso

因此,我目前正在进行一个涉及引用整个Pokemon pokedex的项目,当我四处寻找源代码时,我意识到Pokemon摊牌是开源的,因此,存储库中有一个完整的pokedex。但是,当我打开包含的文件时,我发现它并没有设置为json文件,而是完全设置为其他文件

下面是我的问题:
1:存储的数据具体是什么?对象数组?
2:如何将数据转换为JSON或像引用JSON一样引用它(使用键名)

  • 数据存储为JavaScript对象,键是每个口袋妖怪的名称
  • 见下文
  • 从文件中删除下面的代码,并将文件名更改为
    .json
    ,您将获得json数据

    'use strict';
    
    exports.BattlePokedex = 
    

    该数据是一个JavaScript对象,作为外部文件导出以供使用。您可以做的是使用将对象转换为JSON字符串

    const battlePokedex = require('data/pokedex.js');
    const pokedexInJson = JSON.stringify(battlePokedex);
    
    console.log(`Now it's the JSON representation of the JS object ${ pokedexInJson }`)
    

    这基本上是一个模块,它公开了一个包含所有pokedex数据的对象。您可以导入此模块,它将返回您想要作为对象的数据。下面是一个小例子:

    var pokedex = require('./pokedex.js'); //Path to file where is the module you want to import
    
    例如,假设您希望从Pikachu获取数据:

    // pokedex is the module you imported, BattlePokedex is what they exposed 
    // in the module, and the pikachu is the object containing the pikachu data
    var pikachu = pokedex.BattlePokedex.pikachu;
    

    我希望这会有所帮助,但如果您能提供更多的上下文(例如代码片段),我可以尝试给出一个更完整的答案。

    解决了这个问题,我最终没有将其转换为json,而是将其作为一个对象保留在一个单独的文件中。对于将来有类似问题的用户,只需执行以下操作:

    如果对象位于单独的文件中,请在主javascript的脚本导入之前向html添加脚本导入(与导入jquery的方式相同)。然后将
    .exports
    行更改为变量声明。对我来说,以前是这样的:

    exports.BattlePokedex={

    然后我把它改成:

    var-dex={

    为了访问不同的变量,我使用了以下代码行:


    var pokemon=dex[name];

    在这种情况下,对象的整个JSON/对象被导出到一个变量
    BattlePokedex
    。也许你应该看看并了解导出是如何工作的。所以它被存储为JS对象?哦,在我看来,JSON arrayJS数组就像
    [{},{},{}]
    。这是一个对象
    {key:{},key:{}
    或其他语言意义上的字典。没问题,如果这解决了您的问题,请接受答案。谢谢:我得到了
    未捕获的引用错误:没有定义require(…)
    @jhearst您使用节点模块吗?还有一个问题,您使用的是ecmascript 5还是ecmascript 6?我没有使用节点模块(我计划在github.io上托管该页面)