#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() . Теперь это сработало. 🙂