小编典典

JSON是否有查询语言?

json

是否存在(大致)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版本。(好吧,我知道这有点愚蠢,但是你明白了。)


阅读 349

收藏
2020-07-27

共1个答案

小编典典

当然,如何:

它们似乎都在进行中,但是在某种程度上仍在工作。它们在概念上也类似于XPath和XQuery。即使XML和JSON具有不同的概念模型(层次结构与对象/结构)。

编辑
2015年9月:实际上,现在有了JSON指针标准,该标准允许非常简单有效地遍历JSON内容。它不仅是正式指定的,而且受许多JSON库支持。因此,我将其称为实际真正有用的标准,尽管由于其有限的表达性,它可能本身也可能不被视为查询语言。

2020-07-27