Поиск в JSON с помощью DefiantJS

DefiantJS позволяет организовать супер-быстрый поиск в JSON-е, используя XPath выражения, и преобразовать JSON, используя XSL.

Если вам необходимо сделать какой-то поиск в JSON объекте без прокрутки в цикле и дополнительных условий, то вы можете воспользоваться DefiantJS. Данный инструмент позволить осуществить супер-быстрый поиск.

var obj = {
       "car": [
           {"id": 10, "color": "silver", "name": "Volvo"},
           {"id": 11, "color": "red",    "name": "Saab"},
           {"id": 12, "color": "red",    "name": "Peugeot"},
           {"id": 13, "color": "yellow", "name": "Porsche"}
       ],


       "bike": [
           {"id": 20, "color": "black", "name": "Cannondale"},
           {"id": 21, "color": "red",   "name": "Shimano"}
       ]
   },


   search = JSON.search(obj, '//car[color="yellow"]/name');


console.log( search );


// ["Porsche"]

var reds = JSON.search(obj, '//*[color="red"]');


for (var i=0; i<reds.length; i++) {
   console.log( reds[i].name );
}


// Saab
// Peugeot
// Shimano

Поиск с предварительной подготовкой

В DefiantJS 1.2.0 была введена возможность, с помощью которой скорость поиска можно быть увеличена в 100 раз. Для этого DefiantJS предварительно обрабатывает JSON структуру; это может занять некоторое время. Однако после этого скорость обработки файла размером 1.6MB может быть осуществлена за 4 миллисекунды.

var data {
   // … крупный JSON файл...
};


// Обычный поиск
found = JSON.search(data, '//item');


var snapshot = Defiant.getSnapshot(data);

// Поиск с предварительной подготовкой
found = JSON.search(snapshot, '//item');

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.defiantjs.com/
Перевел: Станислав Протасевич
Урок создан: 30 Мая 2016
Просмотров: 6242
Правила перепечатки


5 последних уроков рубрики "jQuery"

^ Наверх ^