¡Hola!
Estoy creando un sistema de advertencia y quiero guardar las advertencias en un archivo JSON. El problema es que cuando intento crear un nuevo objeto en algo, se sobrescribe.
Mi código:
const warnObject = JSON.parse(fs.readFileSync('./data/data.json')); const id = "739176" const length = Object.keys(warnObject[id]).length + 1 warnObject[id] = {} warnObject[id][length] = {} warnObject[id][length]["reason"] = "This is a reason." warnObject[id][length]["date"] = new Date().toLocaleString(); fs.writeFileSync('./data/data.json', JSON.stringify(warnObject));Y aquí está mi archivo JSON:
{"739176":{"2":{"reason":"This is a reason.","date":"28.03.2022, 14:52:09"}}}Entonces, en lugar de sobrescribir la advertencia número 2, quiero crear una nueva como esta
{"739176":{"2":{"reason":"This is a reason.","date":"28.03.2022, 14:52:09"}}, {"3":{"reason":"This is a reason.","date":"28.03.2022, 14:52:09"}}}Si desea tener múltiples objetos de advertencia bajo la identificación "739176", deberá formatear su archivo json para tener una matriz asociada a su identificación, como:
{ "739176":[ {"2":{"reason":"This is a reason.","date":"28.03.2022, 14:52:09"}}, {"3":{"reason":"This is a reason.","date":"28.03.2022, 14:52:09"}} ] }Entonces, una vez que haya formateado su archivo de esta manera, podrá obtener la matriz a la que hace referencia la identificación y enviarle objetos de esta manera:
warnObject[id].push({"4":{"reason":"This is a reason.","date":"28.03.2022, 14:52:09"}});