是否存在(大致)SQL或类似XQuery的语言来查询JSON?
我想到的是非常小的数据集,可以很好地映射到JSON,可以轻松地回答诸如“ Y> 3时X的所有值是什么”之类的查询或执行常规的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)
快速Google 搜寻表明人们已经考虑了这一点并实现了一些东西(JAQL),但似乎还没有出现标准用法或库集。尽管每个功能单独实现起来都很简单,但是如果有人已经正确地实现了,我不想重新发明轮子。
有什么建议?
编辑:这的确是个坏主意,或者JSON可能对于我正在考虑的格式而言过于通用。想要查询语言而不是直接根据需要直接执行sum / etc函数的原因是我希望构建根据用户输入动态查询。Kinda喜欢这样的论点:“我们不需要SQL,我们只需编写所需的函数即可”。最终,这要么变得一发不可收拾,要么随着您对SQL的进一步推崇而最终编写出自己的SQL版本。(好吧,我知道这有点愚蠢,但是你明白了。)
当然,如何:
它们似乎都在进行中,但是在某种程度上仍在工作。它们在概念上也类似于XPath和XQuery。即使XML和JSON具有不同的概念模型(层次结构与对象/结构)。
编辑 2015年9月:实际上,现在有了JSON指针标准,该标准允许非常简单有效地遍历JSON内容。它不仅是正式指定的,而且受许多JSON库支持。因此,我将其称为实际真正有用的标准,尽管由于其有限的表达性,它可能本身也可能不被视为查询语言。