Как создавать вложенные объекты JSON с помощью NodeJS и JSON.stringify()

#node.js #json

#node.js #json

Вопрос:

Моя проблема в port_password.

{
"сервер": "0.0.0.0",
"server_ipv6": "::",
"local_address": "127.0.0.1",
"local_port": 1080,
"тайм-аут": 120,
"метод": "aes-256-cfb",
"протокол": "происхождение",
"protocol_param": "",
"obfs": "tls1.2_ticket_auth",
"obfs_param": "",
"перенаправление": "",
"dns_ipv6": false,
"fast_open": true,
"workers": 1,
"port_password": "{"10000":"передать","10001":" пропуск","10002":" пройти",}"
}

Код, который я использовал для генерации JSON.

Учетная запись.forEach(ssr => {

 portsPasswords  = JSON.stringify(ssr.port.toString())   ':'   JSON.stringify(ssr.password.toString())   ','

})

Я хочу, чтобы вывод был примерно таким. Как я могу добиться этого с помощью NodeJS и JSON.stringfy()?

{
"сервер": "0.0.0.0",
"server_ipv6": "::",
"local_address": "127.0.0.1",
"local_port": 1080,
"тайм-аут": 120,
"метод": "aes-256-cfb",
"протокол": "происхождение",
"protocol_param": "",
"obfs": "tls1.2_ticket_auth",
"obfs_param": "",
"перенаправление": "",
"dns_ipv6": false,
"fast_open": true,
"workers": 1,
"port_password": {
 "10000": "pass",
"10001": "pass",
"10002": "pass"
 }
}

Ответ №1:

reduce вместо этого в объект:

 const account = [
  { port: 10000, password: 'pass1' },
  { port: 10001, password: 'pass2' },
  { port: 10002, password: 'pass3' }
];
const port_password = account.reduce((a, { port, password }) => {
  a[port] = password;
  return a;
}, {});

const entireObj = {
  "server": "0.0.0.0",
  // etc
  port_password
};

console.log(JSON.stringify(entireObj));  

Комментарии:

1. Как новичок, я очень ценю твою помощь, брат! Вы спасаете мой день! Я впервые получаю ответ от stack overflow. Большое вам спасибо! Даже я не понимаю, как работает функция reduce() . Теперь это сработало. 🙂