JSONPath: содержит фильтр

Эй все, я задавался вопросом, знал ли кто-либо о способе использовать регулярное выражение или подстановочный оператор (или 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*’]

Спросите меня, если Вы хотите больше разъяснения вопроса.

9
задан Dan Beam 5 January 2010 в 00:04
поделиться

1 ответ

nevermind, ребята, нашли способ сделать это, просто используя ECMA внутри JSONPath, хотя это не родной селектор / оператор. Просто использовал:

$.[?(/find/.test(@.hey))]

метод RegExp test( ) (который JSONPath evalнаходится за кулисами).

Если у кого-нибудь есть ответ получше, дайте мне знать.

17
ответ дан 4 December 2019 в 09:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: