所以我目前正在开发一个涉及引用整个Pokemon pokedex的项目,当我在寻找源代码时,我意识到Pokemon Showdown是开源的,因此,存储库中有一个完整的pokedex。但是,当我打开包含pokedex的文件时,我发现它没有设置为json文件,而是完全不同。
所以,这是我的问题:
1:数据存储的确切内容是什么?一系列物体?
2:我如何将数据转换为JSON或引用它,就像我使用JSON(使用键名)
答案 0 :(得分:1)
数据是一个JavaScript对象,导出为module以供外部文件使用。你可以做的是使用JSON.stringify
将对象转换为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 }`)
答案 1 :(得分:0)
从文件中删除以下代码,并将文件名更改为.json
,然后获取JSON数据。
'use strict';
exports.BattlePokedex =
答案 2 :(得分:0)
这基本上是一个用所有pokedex数据公开对象的模块。您可以导入此模块,它将返回您想要作为对象的数据。这是一个小例子:
var pokedex = require('./pokedex.js'); //Path to file where is the module you want to import
例如,想象一下你想从皮卡丘获得数据:
// 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;
我希望这会有所帮助,但如果您可以提供更多上下文(例如代码片段),我可以尝试提供更完整的答案。
答案 3 :(得分:0)
想出来,我最终没有将它转换为json,只是将它作为一个对象放在一个单独的文件中。对于将来遇到类似问题的人,请执行以下操作:
如果您的对象位于单独的文件中,请在脚本导入主javascript之前将脚本导入添加到html (它与导入jquery的方式相同)。然后将.exports
行更改为变量声明。对我来说,它看起来像这样:
exports.BattlePokedex = {
var dex = {
要访问不同的变量,我使用了这行代码:
var pokemon = dex[name];