将密钥添加到 json 文件,删除重复项并写入 javascript 中的 json 文件

add keys to a json file, remove duplicates and write to json file in javascript

我想将另一个 Json 文件中的数据添加到另一个文件而不覆盖现有文件。我无法进一步了解,控制台总是给我以下信息:

Console output 
Data 
string  
[
    "follow1",
    "follow2",
    "follow3",
    "follow4",
    "[\"follow5\",\"follow6\",\"follow7\",\"follow8\",\"follow9\"]"
]

这是我的代码,我想添加数据但没有方括号和反斜杠。如果有人能帮助我,那就太好了。非常感谢

const user = require('./user.json');
const oldUser = user.user_follwos["user1"];
const data = require('./data.json');
const toAdd = JSON.stringify(data);

const result = JSON.stringify(toAdd);
oldUser.push(...toAdd.split(' '))
const newData = JSON.stringify(oldUser, null, 4)
console.log('\nData \n' + typeof newData + '  \n' + newData);

这是我的 json 个文件

//user.json
{
  "application_id": "123546789",
  "user_follwos": {
    "user1": [
      "follow1",
      "follow2",
      "follow3",
      "follow4"
    ],
    "user2": [
      "followA",
      "followB",
      "followC",
      "followD"
    ]
  },
 ...
 ...
}
//data.json
[
  "follow5",
  "follow6",
  "follow7",
  "follow8",
  "follow9"
]

您应该在最后一次将您的数据结构转换为JSON,紧接在您将结果写入文件之前。

就目前而言,您会抓住一切机会将所有内容转换为 JSON。因此,每次您尝试向数据结构中添加一个数组时,您都会添加一个表示该数组的 JSON 字符串。

您不需要对数据变量进行字符串化,因为它是一个 javascript 对象,因此您可以将它连接到现有用户数组的末尾。

const user = require('./user.json');
let oldUser = user.user_follwos["user1"];
const data = require('./data.json');

oldUser = oldUser.concat(data);
const newData = JSON.stringify(oldUser, null, 4);
console.log('\nData \n' + typeof newData + '  \n' + newData);

concat 方法创建一个新的数组对象,这样您就可以将结果分配给一个新变量,而无需覆盖现有的“oldUser”变量。

Data
string
[
    "follow1",
    "follow2",
    "follow3",
    "follow4",
    "follow5",
    "follow6",
    "follow7",
    "follow8",
    "follow9"
]

首先要做一些事情,你需要 json

中的两个数据
  • 制作 2 个数组
  • 删除重复项
  • 然后不重复地推送数据。

把所有东西放在一起

let allTogether = data.push(...oldUser);

创建唯一数组

uniq = [...new Set(allTogether )];

最后将此唯一数据设置为特定键

user_follwos.user1 = uniq

希望这是你需要的

用例子更新

    let user = {
    "application_id": "123546789",
    "user_follwos": {
    "user1": [
      "follow1",
      "follow2",
      "follow3",
      "follow4"
    ],
    "user2": [
      "followA",
      "followB",
      "followC",
      "followD"
    ]
  }
};

let data = [
  "follow5",
  "follow6",
  "follow7",
  "follow8",
  "follow9"
];

let oldUser = user["user_follwos"]["user1"];
console.log(`This is old user array`);
console.log(oldUser);
let allTogether = [];
allTogether.push(...data)
allTogether.push(...oldUser);
console.log(`After we put all together`);
console.log(allTogether);
uniq = [...new Set(allTogether )];
console.log(`Getting unique values`);
console.log(uniq);
oldUser = uniq;
console.log(`Now olds user is`);
console.log(oldUser);