使用saxon和XPath 3.1解析JSON文件

问题描述 投票:0回答:1

这是从Java应用程序调用Saxon的情况。我了解Saxon可以使用XPath 3.1对JSON文件运行查询。关于此的几个问题:

  1. 在哪里有一个如何做到这一点的例子?我已经进行了搜索,并找到了许多有关执行此操作的详细信息的答案,但注意如何读取文件和执行查询。与XML相同吗?
  2. 是否可以为JSON提供一个模式文件,以便正确键入返回值?如果是这样,如何?
  3. XQuery还能在JSON上执行查询吗?
  4. 什么版本的Saxon支持此功能? (我们使用的是9.9.1.1,想知道是否需要升级。)
saxon
1个回答
0
投票

从技术上讲,您不会对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]中进行了详细介绍。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.