繁体   English   中英

向现有的JSON对象添加新元素

[英]Adding a New Element to an existing JSON Object

我试图将json对象添加到节点js中的现有文件中:当成员注册时,我希望将其数据添加到我现有的json文件中。 我在differents网站上发现了一些技巧和代码来实现这一目标,但仍然没有任何效果。

我的Json文件现在看起来像这样。

{
  "Family Name": "Vincent",
  "Name": "Test",
  "Promotion": "2A",
  "Mail": "Vincent@gmail.com",
  "Event": "FE only",
  "Password" : "test"
} 

我希望他注册时看起来像这样:

{
  "Family Name": "Vincent",
  "Name": "Test",
  "Promotion": "2A",
  "Mail": "Vincent@gmail.com",
  "Event": "FE only",
  "Password" : "test"
},
{
  "Family Name": "Test",
  "Name": "Test",
  "Promotion": "2A",
  "Mail": "Okay@gmail.com",
  "Event": "FE only",
  "Password" : "test"
}

希望您能够帮助我。 非常感谢 !

您可以使用一些现有的库(例如: lowdb

并如下使用

const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')

const adapter = new FileSync('yourfile.json')
const db = low(adapter)
db
  .get('users')
  .push({ "Family Name": "Vincent", "Name": "Test", ... })
  .write()

首先使用JSON数组维护您的数据。 您可以使用节点fs模块读取和更新文件。 例如:

const fs = require('fs');
function readFileAndSaveData(){
   try {
        let userData = fs.readFileSync('user.json');
        userData = JSON.parse(userData);
        userData.push({
          "Family Name": "Test",
           "Name": "Test",
           "Promotion": "2A",
           "Mail": "Okay@gmail.com",
           "Event": "FE only",
           "Password" : "test"
        });
        fs.writeFileSync('user.json', JSON.stringify(userData));
    } catch (error) {
        console.log(error);
    }

}
var json1 = {
  "Family Name": "Vincent",
  "Name": "Test",
  "Promotion": "2A",
  "Mail": "Vincent@gmail.com",
  "Event": "FE only",
  "Password" : "test"
};
var json2 = {
  "Family Name": "Test",
  "Name": "Test",
  "Promotion": "2A",
  "Mail": "Okay@gmail.com",
  "Event": "FE only",
  "Password" : "test"
  }
var arr = []; // create new empty array
arr.push(json1); // push variable1
arr.push(json2); // push variable2
console.log(arr);

结果:

[ { 'Family Name': 'Vincent',
    Name: 'Test',
    Promotion: '2A',
    Mail: 'Vincent@gmail.com',
    Event: 'FE only',
    Password: 'test' },
  { 'Family Name': 'Test',
    Name: 'Test',
    Promotion: '2A',
    Mail: 'Okay@gmail.com',
    Event: 'FE only',
    Password: 'test' } ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM