De hecho, estoy creando un archivo JSON con nodejs, pero cuando uso JSON.stringify. Mi objeto Json funciona correctamente cuando lo imprimo:
Pero cuando encadeno mi objeto json obtengo eso:
Lo que recibo cuando imprimo mi objeto json
Una gran parte de mi información json no quiere guardarse. No sé por qué. Aquí está el código:
Está intentando usar una 'matriz dispersa' para almacenar sus datos. Las matrices no tienen una forma clara de crear instancias con elementos en un índice específico.
Un objeto (o un mapa) se ajustaría mejor a sus necesidades. Para usar un objeto, modifiqué el código de inicio de sus 'cuentas' que se comentó:
// replace this: dataObj["accounts"] = []; // with this: dataObj["accounts"] = {};El otro código que está usando (p. ej., acceder a los elementos usando los corchetes) funcionará de la misma manera. Probablemente debería hacer los mismos ajustes a las otras matrices que está utilizando.
Las matrices dispersas pueden volverse feas en algunas notaciones si tiene grandes espacios en blanco (lo que sin duda tendría su metodología UUID). Un objeto o un Mapa no sufrirá esa carencia.
Un ejemplo de código similar, usando objetos en lugar de arreglos:
let dataObj = {}; dataObj["accounts"] = {}; let uuid = 'abcdefghij12344'; dataObj["accounts"][uuid] = {} dataObj["accounts"][uuid]['active'] = true; dataObj["accounts"][uuid]['someotherval'] = true; console.log(dataObj); //outputs: { accounts: { abcdefghij12344: { active: true, someotherval: true } } } let stringified = JSON.stringify(dataObj); console.log(stringified); // Outputs: {"accounts":{"abcdefghij12344":{"active":true,"someotherval":true}}} let parsed = JSON.parse(stringified); console.log(parsed); //Outputs: { accounts: { abcdefghij12344: { active: true, someotherval: true } } }