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);
}
); */
});
I got this object and I wrote map function to fetch all the fields which I got from the output.
And I am trying to store in JSON file but I don't want to store data in this format
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'
How can I remove all the nested 'fn-us','as-ds' n all and store the value in expected format
You can e.g. use Object.entries and Object.fromEntries() in combination with .map() to return the new structure:
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);