Altova XMLSpy 2023 Professional Edition

用户可以通过在XPath/XQuery输出窗口参见下方截图)中输入XPath/XQuery 3.1查询表达式来查询JSON文档。

XPathXQueryWindow4JSON01

要计算JSON文档上的表达式,请执行以下操作:

 

1.选择XPath 3.1图标或XQuery 3.1图标。

2.请确保该窗口处于JSON计算模式。

3.输入 XPath 3.1或XQuery 3.1表达式。

4.单击开始计算(位于工具栏的左侧)。

 

针对JSON的XQuery 3.1表达式

由于在JSON数据结构中通常使用对象和数组,因此会用XQuery 3.1查找运算符 ?来定位JSON对象(从XQuery的角度看,本质上是映射)和JSON数组内的节点。这种定位节点的方式与编写路径表达式定位XML文档中的节点的方式不同。其中,斜杠运算符/用于连接路径表达式中的步骤(例如:items/*)。在针对JSON的XQuery表达式中,斜杠运算符不是用于定位节点的。

 

针对JSON的XQuery表达式示例

 

?items?*

含义:查找子节点items,然后查找其所有子节点。请注意,items应该是上下文节点的子节点。

 

?Artists?1?Albums?2?Name

含义:查找子节点Artists,然后查找其第一个子节点。在该节点内,查找子节点Albums,然后查找其第二个子节点。现在返回第二个子节点的Name节点。

 

?Tracks?*[contains(?Writer, 'Brian')]

含义:查找子节点Tracks,然后查找其所有子节点。在查找子节点的同时,查找每个子节点的Writer节点的子节点,然后仅选择那些包含'Brian’字符串的节点。请注意,该表达式中有三个查找运算符。每个运算符都在一个新的步骤中使用,在每一步中必须查找一个节点集。

 

?Artists?*[?Name="Queen"]?Albums?*?Name

含义:在根对象内,查找子节点Artists,然后查找其所有具有"Queen”值的Name节点的子节点。在这些节点内,查找所有子Albums节点,然后查找其子节点。在这些子节点内,查找(并返回)各自的Name节点。在下方截图中,该表达式连同目标JSON文档的JSON网格视图表示形式一起显示在XPath/XQuery窗口中。

 

inc-XQueryExpForJSON

 

JSON计算的“结果”窗格

选定的JSON组件在“结果”窗格的左侧用粗体显示,组件的值显示在窗格的右侧。在下方截图中,结果以粗体显示。数组已被展开以显示其成员。

XPXQWindowJSON02

根据工具栏中的显示完整结果是关闭还是打开,映射和数组将显示为简短或详细的格式。窗格左侧的映射和数组可以通过单击其相应的加号图标来展开。

 

© 2017-2023 Altova GmbH