Explicación:
Quiero hacer una aplicación Electron [Javascript no jQuary ] (o estoy en proceso de hacerlo) y me gustaría agregar una función que coloque una configuración en el "formato" de otra.
El archivo grande del que quiero tomar la información que leo actualmente a través de "dialog.showOpenDialog" y también puedo acceder al objeto json.
Ahora al problema:
El archivo que obtengo a través del cuadro de diálogo tiene 8000 líneas y contiene información individual que quiero empaquetar en un documento más pequeño con aproximadamente 3000 líneas. Importante: la información individual tiene un nombre diferente, por ejemplo, quiero "ABCD: 23" del documento 1 en el otro como EFG: 23.
Ahora mis dos preguntas:
bigconfig.json:
{ "EXAMPLE_CATEGORY": { "setting1": 0, "setting2": 1, "setting3": 115, "setting4": 0, },Smallerconfig.json
{ "EXAMPLE_CATEGORY": { "setting7": 115, "setting8": 0, },Editar : lo que quiero lograr es que pueda crear (y guardar) un archivo modificado con la información que empaqué del archivo grande al pequeño.
En el más pequeño debería estar todo 3000 fieltro
Realmente agradecería ayuda... ayer investigué mucho y usé el motor de búsqueda durante varias horas.
Gracias por adelantado
La única forma en que su objeto smallerConfig sabrá qué nuevas claves usar es si las define de antemano. Para hacer esto, debe crear un objeto que vincule los nombres de clave antiguos con los nombres de clave nuevos . Estos vínculos se definirían mejor en un solo lugar. El siguiente código contiene estos enlaces en la tabla de conversionTable .
Para construir el objeto smallerConfig , debe recorrer (usando for...in ) a través del objeto bigConfig una línea a la vez. Aquí verificará si la clave en el objeto bigConfig coincide con una clave en la tabla de conversionTable (usando el operador in ). Si se encuentra una clave coincidente, usaremos el valor de la clave en conversionTable como la nueva clave en el objeto smallerConfig . Usar el valor bigConfig en la creación del objeto smallerConfig es fácil.
let bigConfig = { 'EXAMPLE_CATEGORY': { 'setting1': 0, 'setting2': 1, 'setting3': 115, 'setting4': 0 } }; let smallerConfig = { 'EXAMPLE_CATEGORY': {} }; let conversionTable = { 'setting3': 'setting7', 'setting4': 'setting8' }; // Iterate through the bigConfig object for (let bigKey in bigConfig.EXAMPLE_CATEGORY) { // Check for a matching key in the conversionTable if (bigKey in conversionTable) { smallerConfig.EXAMPLE_CATEGORY[conversionTable[bigKey]] = bigConfig.EXAMPLE_CATEGORY[bigKey]; } } console.log(smallerConfig);La salida será:
{ 'EXAMPLE_CATEGORY': { 'setting7': 115, 'setting8': 0 } }Finalmente:
JSON.parse() para convertir el contenido del archivo de una cadena a un objeto Javascript.JSON.stringify() para convertir el objeto Javascript nuevamente en una cadena para escribir en el nuevo archivo.