Есть ли (грубо) SQL или XQuery-подобный язык для запроса JSON?
Я думаю о очень маленьких наборах данных, которые хорошо отображают JSON, где было бы неплохо легко отвечать на запросы, такие как "все значения X, где Y > 3", или выполнять обычные операции типа SUM/COUNT.
Как полностью составленный пример, что-то вроде этого:
[{"x": 2, "y": 0}}, {"x": 3, "y": 1}, {"x": 4, "y": 1}]
SUM(X) WHERE Y > 0 (would equate to 7)
LIST(X) WHERE Y > 0 (would equate to [3,4])
Я думаю, что это будет работать как на стороне клиента, так и на стороне сервера, при этом результаты будут преобразованы в соответствующую структуру данных, специфичную для языка (или, возможно, сохраненную как JSON)
Быстрый поиск в Googling предполагает, что люди подумали об этом и внедрили несколько вещей (JAQL), но это не похоже на стандартное использование или набор библиотек появились. Хотя каждая функция довольно тривиальна для реализации сама по себе, если кто-то уже сделал это правильно, я не хочу заново изобретать колесо.
Любые предложения?
Изменить: это может быть плохой идеей, или JSON может быть слишком общим форматом для того, что я думаю. Причина, по которой требуется язык запроса, а не просто выполнять функции суммирования /etc напрямую по мере необходимости, - это то, что я Надежно строить запросы динамически на основе пользовательского ввода. Как будто аргумент о том, что "нам не нужен SQL, мы можем просто написать нужные нам функции". В конце концов, это либо выходит из-под контроля, либо заканчивается тем, что вы пишете собственную версию SQL, когда вы продвигаете ее дальше и дальше. (Хорошо, я знаю, что это немного глупый аргумент, но вы понимаете...)