Эй все, я задавался вопросом, знал ли кто-либо о способе использовать регулярное выражение или подстановочный оператор (или pehaps '%LIKE%'
в SQL), таким образом, я мог использовать JSONPath, чтобы сделать поиск в большом наборе данных JSON.
Например (и да, я анализирую, нет eval( )
луг мои данные в приложении):
var obj = eval ( '({ "hey": "can you find me?" })' );
И я хотел бы иметь возможность просмотреть данные как это:
$.[?(@.hey:contains(find))] // (in jQuery terminology)
где содержание аргумента является частью или всем значением в { "key" : "value" }
пары в моих данных.
В данный момент я только нашел документацию относительно >
, <
, =
, и !=
операторы отношения, которые не дают мне так много гибкости.
Кто-либо знает способ, которым я могу просто просто JSONPath для нахождения этих данных (не имея необходимость циклично выполняться посредством всех записей)?
Я не хочу использовать JSONQuery Dojo, поскольку это потребовало бы другой библиотеки. Однако это позволяет Вам сделать это, здесь их пример:
[?description~‘*the*’]
Спросите меня, если Вы хотите больше разъяснения вопроса.
nevermind, ребята, нашли способ сделать это, просто используя ECMA внутри JSONPath, хотя это не родной селектор / оператор. Просто использовал:
$.[?(/find/.test(@.hey))]
метод RegExp test( ) (который JSONPath eval
находится за кулисами).
Если у кого-нибудь есть ответ получше, дайте мне знать.