Hi, I have below sample JSON.
{
"SCORE": {
"Multi-Choice": [
{
"VALUE": "Strong",
"DUCED": 1
},
{
"VALUE": "Good",
"DUCED": 2
},
{
"VALUE": "Satisfactory",
"DUCED": 3
},
{
"VALUE": "Weak",
"DUCED": 4
},
{
"VALUE": "Default",
"DUCED": 5
},
{
"VALUE": "None",
"DUCED": 6
}
]
},
"TEST_LIST": {
"Enumerated": [
{
"VALUE": "Strong"
},
{
"VALUE": "Good"
},
{
"VALUE": "Satisfactory"
},
{
"VALUE": "Weak"
},
{
"VALUE": "Default"
},
{
"VALUE": "None"
}
]
}
}
For this I have below code.
let finalArr = [];
for (let [key, value] of Object.entries(resObj)) {
if (typeof value === 'object') {
for (let [keyInternal, valueInternal] of Object.entries(value)) {
valueInternal.map(arrValue => {
const finalObj = {
NAME: '',
VALUE: '',
TYPE: ''
};
finalObj.NAME = key;
finalObj.VALUE = arrValue;
finalObj.TYPE = keyInternal;
finalArr.push(finalObj);
console.log(finalArr);
});
}
}
}
Above code giving me an output in below format. `
{
"NAME": "SCORE",
"VALUE": {
"VALUE": "Strong",
"DUCED": 1
},
"TYPE": "Multi-Choice"
}
But I want to display it using below format.
{
"NAME": "SCORE",
"VALUE": "Strong",
"DUCED": 1,
"TYPE": "Multi-Choice"
}
What sorting logic I am missing here not able to fine. Thanks in advance.
What I have tried:
I am trying to merge two JSON array but still output is not expected.
<pre>let finalArr = [];
for (let [key, value] of Object.entries(resObj)) {
if (typeof value === 'object') {
for (let [keyInternal, valueInternal] of Object.entries(value)) {
valueInternal.map(arrValue => {
const finalObj = {
RANGESET_NAME: '',
RANGE_TYPE: ''
};
finalObj.NAME = key;
finalObj.TYPE = keyInternal;
finalArr.push(finalObj);
finalArr.push(arrValue);
});
}
}
}