我不懂任何 Javascript。我有一个如下所示的 .json 文件:
{ "results": [
{
"challenger": {
"__type": "Pointer",
"className": "Player",
"objectId": "STWAxAHKay"
},
"challengerScore": 18,
"createdAt": "2014-12-05T21:43:01.099Z",
"defender": {
"__type": "Pointer",
"className": "Player",
"objectId": "UGAmRVd7Tr"
},
"defenderScore": 21,
"objectId": "pmiACGwe45",
"updatedAt": "2014-12-05T21:43:01.099Z"
},
{
"challenger": {
"__type": "Pointer",
"className": "Player",
"objectId": "STWAxAHKay"
},
"challengerScore": 23,
"createdAt": "2014-12-05T21:43:01.969Z",
"defender": {
"__type": "Pointer",
"className": "Player",
"objectId": "UGAmRVd7Tr"
},
"defenderScore": 25,
"objectId": "HqptXdYmQL",
"updatedAt": "2014-12-05T21:43:01.969Z"
}
]}
我正在像这样将它读入我的脚本中:
var fs = require('fs');
var results = JSON.parse(fs.readFileSync('Game.json', 'utf8'));
results
是一个对象,但不是数组。
我想让它成为一个数组,这样我就可以遍历每个游戏,从每个游戏中获取我需要的数据,并使用它来创建一个新对象,我最终将其保存在一个 .json 文件中。
我希望有人能指导我完成整个过程,但如果有人能告诉我如何制作一系列我可以迭代的游戏,我会很高兴。
谢谢。
最佳答案
您可以像这样尝试 Javascript 的内置函数:
var fs = require('fs');
var results = JSON.parse(fs.readFileSync('games.json', 'utf8'));
function grabDataFromAGame(elem, index, array) {
// Grab the data from the game object you need
var gameObj = {};
gameObj.challengerScore = elem.challengerScore;
gameObj.defenderScore = elem.defenderScore;
gameObj.id = elem.objectId;
saveGameObjToFile(gameObj);
}
function saveGameObjToFile(gameObj){
var gameFile = fs.openSync('./gameObj-' + gameObj.id + '.json', 'w');
fs.writeSync(gameFile, JSON.stringify(gameObj));
}
results.results.forEach(grabDataFromAGame);
此代码生成了以下文件:
~/salesman 542-> node so.js
~/salesman 543->
~/salesman 543->
~/salesman 543-> ll gameObj-*
-rw-r--r-- 1 neerajsharma staff 59B Jun 11 18:56 gameObj-pmiACGwe45.json
-rw-r--r-- 1 neerajsharma staff 59B Jun 11 18:56 gameObj-HqptXdYmQL.json
~/salesman 544-> cat gameObj-pmiACGwe45.json | python -m json.tool
{
"challengerScore": 18,
"defenderScore": 21,
"id": "pmiACGwe45"
}
~/salesman 545->
请注意,不建议对 Node 使用 sync
调用,因为 node 是单线程的,在同步调用完成之前您的应用程序将被阻塞。
可以找到使用 forEach 的示例 here
关于javascript - 将 JSON 转换为 Javascript 数组对象 - node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30793965/