Возврат записей из json только с определенным флагом - PullRequest
1 голос
/ 24 мая 2011

Я пытаюсь получить свои результаты от JSON. скажем, у меня есть 20 видов фруктов, но только 3 из них имеют price=free в результате. как я могу вернуть цену = только бесплатные результаты?

вот что я делаю, чтобы вернуть результаты ..

fruits.payload.entries[count].name

Я хочу получить название фруктов, которые имеют price=free

Ответы [ 3 ]

0 голосов
/ 24 мая 2011

Вы можете попробовать json: select () - «CSS-подобные селекторы для JSON» http://jsonselect.org/

0 голосов
/ 24 мая 2011

Если служба, с которой вы разговариваете, не поддерживает этот запрос, вам придется отфильтровать их самостоятельно.

Для полноты ниже приведен цикл без фреймворка:

var i, len, a, freeOnly = [], item;
a = fruits.payload.entries;

for( i = 0, len = a.length; i < len; i ++){
     item = a[i];
     if( item.price === 'free' ){
         freeOnly.push(item);
     }
} 

Для бесплатных имен элементов вы должны сделать:

function freeItemNames(items){
    var i, len, freeNames = [], item;


    for( i = 0, len = items.length; i < len; i ++){
         item = items[i];
         if( item.price === 'free' ){
             freeNames.push(item.name);
         }
    } 
    return freeNames;
}

// call like this
freeItemNames(fruits.payload.entries);

// should output something like
["Free fruit 1","Fruity two"]
0 голосов
/ 24 мая 2011
$(results).filter(function(){
   return this.price == "free"
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...