Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

нужен расширенный функционал библиотеки JsonPath

http://goessner.net/articles/JsonPath/

есть переменная в JSON формате произвольной структуры, размера и уровня вложенности.

есть строка запроса (фильтр, правило). в зависимости от функции, которой это правило передается, происходит выборка, удаление, вставка или изменение данных в JSON переменной.

строка запроса должна быть в формате, определяющем путь к объекту, индексу массива, набору индексов, фильтру по значению поля. разделитель глубины - символ "точка". правило для фильтрации дочерних элементов заключается в квадратные скобки.

например, есть следующие данные в переменной $json:

{ "store": {

"book": [

{ "category": "reference",

"author": "Nigel Rees",

"title": "Sayings of the Century",

"price": 8.95

},

{ "category": "fiction",

"author": "Evelyn Waugh",

"title": "Sword of Honour",

"price": 12.99

},

{ "category": "fiction",

"author": "Herman Melville",

"title": "Moby Dick",

"isbn": "0-553-21311-3",

"price": 8.99

},

{ "category": "fiction",

"author": "J. R. R. Tolkien",

"title": "The Lord of the Rings",

"isbn": "0-395-19395-8",

"price": 22.99

}

]

}

}

функция, возвращающая массив объектов всех книг:

filter($json, "store.book");

выбрать массив категорий всех книг:

filter($json, "store.book.category");

удалить из $json все категории:

delete(($json, "store.book.category");

вернуть массив имен авторов из первой и четвертой книги:

filter($json, "store.book.author[0,3]");

вернуть массив имен авторов c первой по третью книгу:

filter($json, "store.book.author[0-2]");

правило для индексов должно быть в формате:

[start-end:step ^exclude_start-exclude_end]

таким образом:

[0-10:2] - выбираем элементы с индексами 0,2,4,6,8,10 (шаг 2)

[0-10:2 ^4] - выбираем элементы с индексами 0,2,6,8,10 (исключаем 4)

[0-10 ^1-9] - выбираем элементы с индексами 0,10 (исключаем диапазон 1-9)

должна быть возможность фильтровать по значению поля.

например:

store.book[@price>10] оставит объекты book с ценой выше 10

онлайн тестирование указанной выше библиотеки JqueryPath:

http://jsonpath.curiousconcept.com/

правила фильтрации в ней немного отличаются от необходимых нам.

класс должен работать без использования базы данных, только PHP.

ждем предложений,

спасибо

11 лет назад
minus1
Олег 
45 летУкраина
15 лет в сервисе
Был
11 лет назад
  • Похожие заказы
  • 1. Нужно скопировать jQuery редактор дизайна чехла для телефона www.casetagram.com/design Из всего функционала нужно только: 2. Реализовать загрузку фотографий с компьютера в редактор 3. Применение шаблона телефона (3 разных устройства) 4. Применение цвета телефона (3 ...

    Закрыт
    11 лет назад
  • Требуется создать индивидуальный таймер обратного отсчета для сайта на joomla 2.5 Таймер должен быть у каждого человека свой. Формат: ДД:ЧЧ:ММ:СС (дни, часы, минуты, секунды). Срок таймера - 30 дней с начала отсчета. То есть суть ...

    Закрыт
    11 лет назад
  • Добрый день. Нужно написать модуль автоответчика для социальной сети. То есть это должен быть модуль, которйы ведет диалоги по схеме, а так же запоминает базу вопросов и ответов. Задача не тривиальная. ТЗ составим вместе с разработчиком. От вас: ...

    Закрыт
    11 лет назад
  • Доброго времени суток. Нужен человек, который сможет внести правки в сайт (ТЗ в приложении) Такие правки появляются каждый день. Будет хорошо, если вы готовы постоянно работать над сайтом. Оплата по выполненому ТЗ (скидываю тз -> оцениваете -> ...

    Закрыт
    11 лет назад
  • Когда заходим в модули, видим такое http://easycaptures.com/fs/uploaded/594/5782722680.png Вот такое в разделе "Содержимое" А вот, какая ошибка выходит при добавлении содержимого. Какой-то атишник напорол. Говорит, что хотел языки внедрить, руки бы ему пообрывать. Нужно все ошибки исправить. Сайт www_koreavision_kz ася: пять шесть ...

    Закрыт
    11 лет назад
  • нужен калькулятор для сайта подсчета работ по примеру http://re-e.ru/ . Принцип такой же: вводится данные от 1 до 2500 к.м. - и в колонках меняются показатели.  Пожалуйста оцените стоимость и время на разработку. Калькулятор находится в ...

    Завершен
    11 лет назад
  • Задача следующая, имеется к примеру у покупателя дисконтная карта, при вводе на сайте должна учитываться скидка. Кто сможет такое реализовать для opencart или предложите свой движок. Пишите свои предложения решения данной задачи, стоимость и контакты ...

    Закрыт
    11 лет назад
  • Нужно проверить сайт на вирусы, почистить код. Движок DLE Яндекс постоянно пишет, что на сайте вредоносный код, не могу понять что за код. В результате его работы, открываются рекламные страницы в новой вкладке браузеров. Яндекс ...

    Завершен
    11 лет назад
  • $50

    Мне нужен парсер для вконтакте, способный "позаимствовать" контент из выбранных групп (альбомы, фото, описания), а затем похищенное (возможно с некоторыми изменениями в описании) добавить в другую группу.

    Закрыт
    11 лет назад
  • $250

    Необходимо доработать сайт на CodeIgniter. Сайт представляет собой каталог товара, необходимо сверстать дополнительный шаблон и интегрировать его под вывод определенных товаров. Более подробно в ЛС.

    Закрыт
    11 лет назад