| Autor | Zpráva | ||
|---|---|---|---|
| TomTom Profil * |
#1 · Zasláno: 16. 5. 2015, 23:50:45
Ahoj,
chtěl bych se zeptat zda lze pomocí jQuery vyhledat v JSON řetězci? Mám tento kód: var jsonReserved = jQuery.parseJSON('[{"datum":"2015-05-26","stav":"reserved"},{"datum":"2015-05-27","stav":"no"},{"datum":"2015-05-28","stav":"reserved"}]');Můžete mi prosím někdo poradit? Lze to udělat nejak jednoduše přes jQuery? Předem moc děkuji. |
||
| xROAL Profil |
#2 · Zasláno: 17. 5. 2015, 00:29:00
Neviem, či jQuery má nejakú funkciu na to, ale dalo by sa to vyriešiť aj pomocou
for:
var jsonReserved = jQuery.parseJSON('[{"datum":"2015-05-26","stav":"reserved"},{"datum":"2015-05-27","stav":"no"},{"datum":"2015-05-28","stav":"reserved"}]');
for(var i in jsonReserved){
if(jsonReserved.hasOwnProperty(i)){
if(jsonReserved[i].datum == '2015-05-27'){
alert(jsonReserved[i].stav);
break;
}
}
} |
||
| marizikmund Profil |
#3 · Zasláno: 17. 5. 2015, 03:10:11
Tady je na to jednoduchá funkce, stačí do ní vložit požadované datum a pole s údaji. Pokud by v poli bylo více údajů se stejným datem, vrátí to první.
var jsonReserved = jQuery.parseJSON('[{"datum":"2015-05-26","stav":"reserved"},{"datum":"2015-05-27","stav":"no"},{"datum":"2015-05-28","stav":"reserved"}]');
function returnStateIfDate(dateToAsk,arrayDates) {
return arrayDates.filter(function(date) {
return date.datum == dateToAsk;
})[0]['stav'];
}
console.log(returnStateIfDate("2015-05-27", jsonReserved)); //příklad použití |
||
| TomTom Profil * |
#4 · Zasláno: 17. 5. 2015, 09:20:00
marizikmund:
Moc děkuji za odpověď. Snažím se to ještě upravit tak, aby když v jsonReserved nebude hledané datum aby mi fce vrátila false. Bohužel se mi nějak nedaří. Vždycky mi to zkolabuje... Mohl byste mi prosím někdo poradit jak to upravit? Předem moc děkuji |
||
| TomTom Profil * |
#5 · Zasláno: 17. 5. 2015, 10:39:47
Tak už jsem na to přišel.
Moc děkuji za vaše odpovědi... |
||
| Chamurappi Profil |
#6 · Zasláno: 17. 5. 2015, 10:52:12
Reaguji na marizikmunda:
Zapomněl jsi dodat, že metoda filter na poli nefunguje ve starších (ale stále používaných) prohlížečích.
Reaguji na TomToma: K čemu tam je ten parseJSON, proč není ta struktura vepsaná rovnou jako JS pole?
Reaguji na xROALa: Cyklus for-in se na procházení polí nehodí. Požil bych obyčejný for.
|
||
| marizikmund Profil |
#7 · Zasláno: 18. 5. 2015, 01:24:21
Chamurappi má pravdu, pokud chceš podporovat i IE8 a nižší, měl bys tam vložit ještě někam polyfill
|
||
|
Časová prodleva: 10 let
|
|||
0