Существует ли язык запросов для JSON, который разрешает доступ к родительскому узлу и имеет множественный выбор? - PullRequest
1 голос
/ 04 июня 2019

Существует много языков запросов для JSON, таких как JMES Path и JSON Path, но ни один из найденных мной не интересует меня, например, JSON Path не разрешает запрос с несколькими выборками (я не могу вернуть список с разнымиЭлемент type [car, plane, boat]) и JMES Path действительно проще сравнить с JSON Path и разрешить множественный выбор, но не разрешают доступ к родительскому узлу, например .. или parent (@) или $ (для источника).Поэтому мне нужен язык, который может выполнять оба эти действия, если это возможно, язык запросов простой, как JMES Path, но если он только один и самый сложный, то все в порядке, я возьму его!

PS: я работаюв JavaScript!

1 Ответ

1 голос
/ 04 июня 2019

- это язык запросов JSON, похожий на JSONPath, но с полной общностью языка программирования, полного по Тьюрингу.jq включает в себя весь JSON, и многие его конструкции подобны JSON.

Одним из способов решения проблем, связанных с «родителями» и «детьми» в jq, является использование путей jq, которые представляют собой не что иное, как массивы JSON, все элементы которых являются либо строками JSON (соответствующими ключуимена) или целые числа (соответствующие индексам в массиве).Таким образом, если $p является путем к некоторому подкомпоненту документа JSON, тогда путь к его родительскому элементу будет $p[:-1].Однако на практике многие проблемы, связанные с родителями и / или детьми, могут быть легко решены без использования полных путей.

Ресурсы

Основной веб-сайт включает в себя учебное пособие, руководствои Wiki, в котором есть FAQ, Поваренная книга, «Описание языка» и руководство для пользователей JSONPath.

Здесь, на stackoverflow, в настоящее время существует более 2000 вопросов с http://rosettacode.org/wiki/Category:Jq

...