Reputation: 543
Iam implementing datepicker using Oracle JET.The JET cookbook provides me sample Datapicker that has JSON file as below.
"Holidays": {
"*": {
"1": {
"14": {
"className": "holiday"
},
"26": {
"className": "holiday"
}
}
}
And Json file I get from my rest services is as below
[
{
"YEAR":"2017",
"MONTH":"1",
"DAY":[
{
"N_DAYS":"25",
"className":"holiday"
},
{
"N_DAYS":"25",
"className":"holiday"
}
]
},
];
How I can convert JSON file I get from the rest services like above one provided in JET cookbook
Upvotes: 0
Views: 168
Reputation: 543
And Here is the fiddle link https://fiddle.jshell.net/q80212b7/1/
var myStuff= [ {
"YYYY_YEAR" : "2013",
"MMM_MONTH" : "06",
"DAY_OUT" : {
"DAY_OUT_ITEM" : {
"N_DAYS" : "06",
"CLASSNAME" : "Holiday",
"TOOLTIP" : "Lalat Al Miraj"
}
}
}, {
"YYYY_YEAR" : "2017",
"MMM_MONTH" : "06",
"DAY_OUT" : {
"DAY_OUT_ITEM" : [ {
"N_DAYS" : "06",
"CLASSNAME" : "Holiday",
"TOOLTIP" : "Lalat Al Miraj"
} ]
}
}, {
"YYYY_YEAR" : "2013",
"MMM_MONTH" : "01",
"DAY_OUT" : {
"DAY_OUT_ITEM" : [ {
"N_DAYS" : "01",
"CLASSNAME" : "Holiday",
"TOOLTIP" : "New Year's Day"
}, {
"N_DAYS" : "24",
"CLASSNAME" : "Holiday",
"TOOLTIP" : "Milad Un Nabi"
} ]
}
}, {
"YYYY_YEAR" : "2017",
"MMM_MONTH" : "01",
"DAY_OUT" : {
"DAY_OUT_ITEM" : [ {
"N_DAYS" : "01",
"CLASSNAME" : "Holiday",
"TOOLTIP" : "New Year's Day"
}, {
"N_DAYS" : "24",
"CLASSNAME" : "Holiday",
"TOOLTIP" : "Milad Un Nabi"
} ]
}
}];
Holidays = {
'value': { }
}
for (var i = 0; i < myStuff.length; i++) {
var year = parseInt(myStuff[i].YYYY_YEAR,10);
var month = parseInt(myStuff[i].MMM_MONTH,10);
if (typeof Holidays['value'][myStuff[i].YYYY_YEAR] == 'undefined') {
Holidays['value'][year] = {};
}
if (typeof Holidays['value'][year][myStuff[i].MMM_MONTH] == 'undefined') {
Holidays['value'][year][month] = {};
}
if(myStuff[i].DAY_OUT.DAY_OUT_ITEM instanceof Array) {
for (var j = 0; j < myStuff[i].DAY_OUT.DAY_OUT_ITEM.length; j++) {
var day=parseInt(myStuff[i].DAY_OUT.DAY_OUT_ITEM[j].N_DAYS,10);
Holidays['value'][year][month][day] = {
className: myStuff[i].DAY_OUT.DAY_OUT_ITEM[j].CLASSNAME,
tooltip: myStuff[i].DAY_OUT.DAY_OUT_ITEM[j].TOOLTIP
};
}
}
else
{
var day=parseInt(myStuff[i].DAY_OUT.DAY_OUT_ITEM.N_DAYS,10);
Holidays['value'][year][month][day] = {
className: myStuff[i].DAY_OUT.DAY_OUT_ITEM.CLASSNAME,
tooltip: myStuff[i].DAY_OUT.DAY_OUT_ITEM.TOOLTIP
};
}
}
Holidays = { Holidays: Holidays }
console.log(JSON.stringify(Holidays.Holidays));
Upvotes: 0
Reputation: 1258
myStuff = [
{
"YEAR":"2017",
"MONTH":"1",
"DAY":[
{
"N_DAYS":"14",
"className":"holiday"
},
{
"N_DAYS":"26",
"className":"holiday"
}
]
},
];
Holidays = {
'*': { }
}
for (var i = 0; i < myStuff.length; i++) {
var month = myStuff[i].MONTH;
for (var j = 0; j < myStuff[i].DAY.length; j++) {
if (typeof Holidays['*'][myStuff[i].MONTH] == 'undefined') {
Holidays['*'][month] = {};
}
Holidays['*'][myStuff[i].MONTH][myStuff[i].DAY[j].N_DAYS] = {
className: myStuff[i].DAY[j].className
}
}
}
Holidays = { Holidays: Holidays }
console.log(Holidays);
Upvotes: 1