2017-05-12 3 views
0

Ich implementiere Datepicker mit Oracle JET. Das JET Kochbuch bietet mir Beispiel Datapicker, der JSON-Datei wie folgt hat.Wie konvertiert man ein JSON-Format mit Javascript in ein anderes?

"Holidays": { 
    "*": { 
    "1": { 
     "14": { 
      "className": "holiday" 

     }, 
     "26": { 
      "className": "holiday" 

     } 
    } 
    } 

und JSON-Datei ich von meinem Rest Dienstleistung ist wie unter

[ 
{ 
    "YEAR":"2017", 
    "MONTH":"1", 
    "DAY":[ 
    { 
     "N_DAYS":"25", 
     "className":"holiday" 
    }, 
    { 
     "N_DAYS":"25", 
     "className":"holiday" 
    } 
] 

     }, 
    ]; 

Wie ich JSON-Datei umwandeln kann ich von den übrigen Leistungen wie oben einem in JET Kochbuch zur Verfügung gestellt bekommen

+0

Was haben Sie versucht? Können Sie der Frage ein [mcve] hinzufügen? – evolutionxbox

+0

hast du irgendeinen Code ausprobiert? –

+0

Ich bin müde. Aber es hat nicht geklappt. Einfaches Format hat gut funktioniert – CodeWriter

Antwort

1

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);

+0

Nur ein Bauchgefühl, aber ich denke, dass '\ *' ist, wo das YEAR-Feld verwendet werden würde. (Und wenn es '\ *' ist, bedeutet es "alle Jahre") – tevemadar

+0

Ich bin ein einfacher Mann. Ich sehe das Ausgabebeispiel, das ich gerade mag, es))) –

+0

vielen Dank !!!! es hat gut funktioniert und danke für deine schnelle Antwort – CodeWriter

0

Und ist die Geige lin k 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));

Verwandte Themen