这是从Java应用程序调用Saxon的情况。我了解Saxon可以使用XPath 3.1对JSON文件运行查询。关于此的几个问题:
从技术上讲,您不会对JSON文件运行查询;您可以针对解析JSON文件(即映射和数组的结构)所产生的数据结构运行它们。您可以使用parse-json()或json-doc()函数解析JSON文件,然后使用对地图和数组起作用的运算符查询结果。规范中的[
显示了其中一些(及其使用示例)https://www.w3.org/TR/xpath-31/#id-maps-and-arrays
Google搜索“查询映射数组JSON XPath 3.1”会发现很多有用的材料。或获取Priscilla Walmsley的书:http://www.datypic.com/books/xquery/chapter24.html
数据类型:JSON固有的字符串,数字和布尔数据类型通过它们的形式自动识别。无法使用模式进行进一步的输入。
XQuery是XPath的超集,但就JSON / Maps / Arrays而言,我认为XPath中的功能与XQuery中的功能完全相同。
Saxon在每个后续发行版中都增加了一些额外的一致性和性能。 9.9的覆盖范围很完整; 10.0进行了一些优化(例如,为键均为字符串的映射创建新的内部数据结构,例如解析JSON时得到的)。 Saxon后续发行版的更改详细信息在http://www.saxonica.com/documentation/index.html#!changes]中进行了详细介绍。