首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONiq中的数组和对象查找

JSONiq中的数组和对象查找
EN

Stack Overflow用户
提问于 2020-04-08 16:33:41
回答 1查看 67关注 0票数 0

我目前正在使用Brackit1和2改进JSON查询能力,这是一个带有额外数组和“记录”的XQuery引擎。我现在基本上使用与JSONiq相同的XQuery,但遗憾的是我不是XDM专家。我想我或多或少已经从Sebastian那里接管了这个项目,并特别增加了时间上的增强。

Brackit使用记录/对象的解引用运算符=>来获取名称的值。

另外,我猜就像纯粹的JSONiq规范一样,它使用[[expr()]]进行数组索引查找。

我相信你有很好的理由去做动态函数调用,所以我可能不得不改变它。然而,我认为取消引用操作符在所有情况下都可以工作,在我看来这是一个更好的语法。

我认为这个愿景很棒,因为有了一个针对半结构化数据的查询编译器,并且经过验证的优化可以在数据存储中使用:http://wwwlgis.informatik.uni-kl.de/cms/dbis/projects/brackit/mission/

Brackit的一个决定性特性可能是FLOWR表达式的流水线,用于面向集合的处理。

亲切的问候

约翰尼斯

1

2

EN

回答 1

Stack Overflow用户

发布于 2020-04-16 16:20:03

谢谢你的问题,约翰斯。

使用动态函数调用的数组和对象查找是在非常早的JSONiq版本中引入的,该版本最初是XQuery的扩展。在扩展数据模型和语法之前,尝试重用早期研究中的现有机制是语言设计中的常见做法。

由于对象和数组可以被视为显式列出输入-输出对的“扩展函数”,(Ab)使用动态函数调用进行对象和数组查找是非常自然的。在XQuery 3.1中也采用了这种方法。

句法扩展出现的时间较晚。在“纯JSONiq”语法中,我们为对象选择了.Expr,为数组选择了[][[Expr]] (为了不与谓词混淆,选择了两个[[]] )。XQuery 3.1还通过?为对象和数组添加了一种方便的语法。

对于FLWOR表达式,我建议查看Rumble,它几乎已经以这种方式处理管道了。这篇论文是here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61096536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档