In NodeJS, I've JSON object as below
Input JSON:
var myJSONObject = {
"metadata": {
"fields": {
"filters": [
{
"kind": "COLUMN",
"name": "CUSTOMERID",
"type": "NUMBER(12,0)"
},
{
"kind": "COLUMN",
"name": "CUSTOMERNAME",
"type": "STRING"
}
],
"projections": [
{
"kind": "COLUMN",
"name": "ADDRESS",
"type": "string",
},
{
"kind": "COLUMN",
"name": "PHONE",
"type": "string",
},
]
}
}
}
I need to create a Simple JSON output as below from the above request.
Expected Output JSON:
{
"projections": [
"ADDRESS",
"PHONE"
],
"filters": [
{
"name": "CUSTOMERID",
"type": "NUMBER(12,0)"
},
{
"name": "CUSTOMERNAME",
"type": "STRING"
}
]
}
My Code:
var result = {
projections: [],
filters: []
};
for(var i = 0; i < myJSONObject.metadata.fields.projections.length; i++)
{ var name = myJSONObject.metadata.fields.projections[i].name;
result.projections.push(name);
}
for(var i = 0; i < myJSONObject.metadata.fields.filters.length; i++)
{ var name = myJSONObject.metadata.fields.filters[i].name;
var type = myJSONObject.metadata.fields.filters[i].type;
result.filters.push({name,type});
}
console.log(result)
Actual Output:
{
projections: [ 'ADDRESS', 'PHONE' ],
filters: [
{ name: 'CUSTOMERID', type: 'NUMBER(12,0)' },
{ name: 'CUSTOMERNAME', type: 'STRING' }
]
}
I've 2 questions, Please help !
- Could you please me to achieve the expected output ( enclosed each key , values with double quotes) ?
- Is there any better way to achieve this other than the above code
JSON.stringify(result)