Javascript 从一个json获取数据并将其放入另一个json中

Javascript 从一个json获取数据并将其放入另一个json中,javascript,json,Javascript,Json,我有一个非常大的json文件,其中包含一个数组。我想使用JavaScript将该json作为一个参数,通过json进行解析,只从中提取某些元素并将其放入一个新的json文件中,下面是我的意思示例: { "contextType": "Account", "preferences": null, "custodianCode": null, "data": [{ "id": "0", "account": "11111111", "field2": true, "field3": false, "

我有一个非常大的json文件,其中包含一个数组。我想使用JavaScript将该json作为一个参数,通过json进行解析,只从中提取某些元素并将其放入一个新的json文件中,下面是我的意思示例:

{
"contextType": "Account",
"preferences": null,
"custodianCode": null,
"data": [{
"id": "0",
"account": "11111111",
"field2": true,
"field3": false,
"field4": "BROK",
"field5": "Broker",
"field6": "1",
"field7": "Cash"
 },{
 "id": "1",
"account": "222222222",
"field2": true,
"field3": false,
"field4": "BROK",
"field5": "Broker",
"field6": "1",
"field7": "Cash"
}]

}
我想从中提取一些东西,比如一个新的json

{
 "newArray": [{
"id": "0",
"account": "11111111",
"field2": true,
"field3": false,
"field4": "BROK",
"field6": "1"
 },{
"id": "0",
"account": "222222222",
"field2": true,
"field3": false,
"field4": "BROK",
"field6": "1"
}]

}
此外,该文件在我的计算机上是本地的,也可以在本地输出,我正在尝试使用node.js和JavaScript,这就是我目前所拥有的

 var json = require('./simple.json');
 var keeperFields = ["id", "account", "field2", "field3", "field4", "field6"];
 var newJSON = {newArray: [] };
 var i;
 var fields;

 for (i = 0; i < keeperFields.length; i++) {
   for (fields in json) {
     if (json.hasOwnProperty(keeperFields[i])) {
       newJSON.newArray.push(keeperFields[i]);
       }
      }
     }

   console.log(newJSON);
var json=require('./simple.json');
var keeperFields=[“id”、“account”、“field2”、“field3”、“field4”、“field6”];
var newJSON={newArray:[]};
var i;
var字段;
对于(i=0;i
这只是一个小例子,真正的json文件很大,有数千行。任何帮助或建议都将不胜感激


当前的解决方案为我提供了一个控制台日志{newArray:[]},而不是上面的预期结果。您需要从json的.data字段开始

json={
“上下文类型”:“帐户”,
“首选项”:空,
“保管人代码”:空,
“数据”:[{
“id”:“0”,
“账户”:“11111111”,
“字段2”:正确,
“字段3”:错误,
“field4”:“BROK”,
“字段5”:“经纪人”,
“字段6”:“1”,
“字段7”:“现金”
},{
“id”:“1”,
“账户”:“2222222”,
“字段2”:正确,
“字段3”:错误,
“field4”:“BROK”,
“字段5”:“经纪人”,
“字段6”:“1”,
“字段7”:“现金”
}]
}
var keeperFields=[“id”、“account”、“field2”、“field3”、“field4”、“field6”];
var newJSON={newArray:[]};
forEach(函数(obj){
var newObj={};
for(var i=0;idocument.write(JSON.stringify(newJSON))如果您知道输入文件的格式是标准化的,则可以更轻松地执行此操作。像这样的东西应该有用

//假设您将数据加载到名为json的json对象中,并且该对象包含一个名为“data”的字段,该字段包含要注入新数组的记录列表。
var json=require('./simple.json');
var keeperFields=[“id”、“account”、“field2”、“field3”、“field4”、“field6”];
var newJSON={
新数组:[]
};
//将记录列表放入一个方便的变量中。
var records=json.data;
//循环浏览记录
for(数据中的var记录ID){
//抓住当前记录
var记录=记录[recordId];
//创建新记录
var newRecord=[];
//循环遍历keeperfields。由于它们已命名,您可以使用相同的字段名在新记录中创建字段
for(keeperFields中的var字段){
//将记录数据从源记录复制到新记录
新记录[字段]=记录[字段];
}
//将新记录附加到新数据集
newJSON.newArray.push(newRecord);

}
您需要将JSON解析为一个可以通读的对象。这不会丢失新数组上的字段名吗?我现在看到它没关系。当我在节点中运行这个节点时,我得到了您想要的输出-只要了解代码片段是如何工作的,这样您就可以看到它的运行了!但我同意,以你的方式迭代看守人字段会更有意义,这很好,我真的应该开始使用foreach more tooThank you这是一个透彻的解释很高兴看到不同的方法来做同样的事情