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