let json=[ { metadata: { tags: [] }, sys: { space: { sys: [Object] }, id: '4gSSbjCFEorYXqrgDIP2FA', type: 'Entry', }, fields: { richTextEditor: { 'fn-US': [Object] }, short: { 'as-ds': 'hello default value' }, shortUrl: { 'en-US': 'www.google.com' }, shortSlugOption: { 'zh-cht': 'hello-default-value' }, mediaFileAssetLink: { 'ur-pk': [Array] }, mediaFileAssetGalary: { 'en-US': [Array] }, singleMediaImage: { 'cy-az-az': [Object] }, booleanField: { 'en-US': true }, locationField: { 'zh-mo': [Object] }, dateNTime: { 'sv': '2022-02-01T00:00+05:30' } } } ]; json.map((data) => { console.log(data.fields); /* fs.writeFile( "./data.json", JSON.stringify(data.fields, null, 4), (err) => { if (err) throw console.log(err.messages); } ); */ });Obtuve este objeto y escribí la función de mapa para obtener todos los campos que obtuve de la salida.
Y estoy tratando de almacenar en un archivo JSON pero no quiero almacenar datos en este formato
richTextEditor: [Object] , short: 'hello default value' , shortUrl: 'www.google.com' , shortSlugOption: 'hello-default-value' , mediaFileAssetLink: [Array] , mediaFileAssetGalary: [Array] , singleMediaImage: [Object] , booleanField: true , locationField: [Object] , dateNTime: '2022-02-01T00:00+05:30'¿Cómo puedo eliminar todos los anidados 'fn-us', 'as-ds' n all y almacenar el valor en el formato esperado?
Por ejemplo, puede usar Object.entries y Object.fromEntries() en combinación con .map() para devolver la nueva estructura:
let json=[ { metadata: { tags: [] }, sys: { space: { sys: [Object] }, id: '4gSSbjCFEorYXqrgDIP2FA', type: 'Entry', }, fields: { richTextEditor: { 'fn-US': [Object] }, short: { 'as-ds': 'hello default value' }, shortUrl: { 'en-US': 'www.google.com' }, shortSlugOption: { 'zh-cht': 'hello-default-value' }, mediaFileAssetLink: { 'ur-pk': [Array] }, mediaFileAssetGalary: { 'en-US': [Array] }, singleMediaImage: { 'cy-az-az': [Object] }, booleanField: { 'en-US': true }, locationField: { 'zh-mo': [Object] }, dateNTime: { 'sv': '2022-02-01T00:00+05:30' } } } ]; const res = json.map((data) => { const fields = Object.fromEntries(Object.entries(data.fields).map(el=>(el[1]=Object.values(el[1])[0], el))) return {...data, fields } /* fs.writeFile( "./data.json", JSON.stringify(data.fields, null, 4), (err) => { if (err) throw console.log(err.messages); } ); */ }); console.log(res);