使用过滤器、公式和图表分析 JSON 数据
软件开发人员和其他数据专业人士在设计高效的数据处理流程之前,通常需要检查新的数据实例。 随着 JSON 成为数据交换的更受欢迎的格式,为了减小数据传输量,可能会牺牲底层数据结构的清晰度。
XMLSpy 支持查看、建模和编辑 JSON 文件,并提供丰富的工具来分析 JSON 数据,包括应用过滤器、公式和图表。
我们来了解一下。

XMLSpy的在线帮助文档以及随XMLSpy一起安装的示例项目,是学习和入门的绝佳资源。
在线帮助包含了使用过滤器和公式的说明和图示。在下面的图片中,一个过滤器被应用于一个包含唱片数据的 JSON 文档,用于仅列出由 Brian May 创作的歌曲

在这个示例中,一个 JSON 文件包含了对一次购物订单的描述,并且会应用一个公式来计算总价

示例文件 Chart.jsonc 描述了每个月的最低和最高温度。这些数据用于创建一个图表,该图表还显示了每个月的计算平均值

以上所有图片都是从 .jsonc 文件生成的。由于除了 JSON5 之外的其他 JSON 格式不允许添加注释,因此引入了带有注释的 JSON 格式(JSONC),以便在 JSON 文档中允许添加注释。
JSON Grid 视图中的筛选、公式和图表功能,都是以 XQuery 函数的形式实现,这些函数以注释的形式存储在代码中,由 XMLSpy 解释器用于分析 JSON 数据。您可以通过在文本视图中查看 Chart.jsonc 文件来了解这一点

这些例子可以为高效解决实际开发难题提供策略,尤其适用于需要从外部来源读取大型 JSON 数据文件的项目。
分析从Web服务获取的JSON数据
假设我们被要求处理来自世界各地任意数量城市的天气预报数据,预报周期为5天。这类数据可能对预测主要航线上的运输时间表,甚至对在热带地区度假的休闲船员都很有用。有很多API可以用来获取天气信息,但它们提供的数据格式略有不同。 在这篇文章中,我们将分析来自openweathermap.org API的数据。
您可以在 XMLSpy 的“文件/打开”主菜单中,直接向 API 发送 REST 请求。只需点击“打开”对话框底部的“切换到 URL”按钮,然后在“文件 URL”字段中输入 API 调用地址即可

API调用的结果将在主编辑窗口中打开。由于JSON数据中没有用于标识格式或版本的头部信息,因此它不会自动被识别。但是,您可以选择“文件/另存为”,并使用“.jsonc”文件扩展名来保存

点击“网格”按钮后,界面会切换到网格视图,此时 JSON 数据会变得更容易理解

首先,我们可以检查一下该地区的气温是否预测会降至冰点以下。这可以通过对列表数组应用筛选条件来实现。我们可以点击位于数组顶部“[ ]”列表右侧的筛选图标,然后输入一个XQuery表达式。可以参考XMLSpy帮助文档中的筛选示例,以了解语法。 筛选条件会立即生效,只显示气温低于冰点的预测结果:

由于我们目前只关注温度值,因此我们还通过点击每个项目编号左侧的灰色滚动条,将数组中每个项目的视图进行了折叠,如图所示。现在可以清楚地看到,这个地方的夜晚可能会比较寒冷!
现在,我们可能需要找到这个预测中预测的最低温度。我们可以使用一个公式来实现这一点。在下面的图片中,我们在列表数组中插入了一个新的节点,将其类型更改为“公式”,并为这个公式指定了一个名称。与其直接在网格视图中输入公式,我们可以使用 XQuery 辅助窗口来构建、测试和调试一个 XQuery 表达式:

我们可以将从 XQuery 编辑器 中复制的完整表达式粘贴到 JSON 网格视图中

采用类似的方法,并以 Chart.jsonc 示例为基础,我们可以添加一个图表来可视化数据:

“ChartConfig”元素定义了图表函数所使用的参数,但实际上,图表函数本身也可以在XQuery窗口中构建

评估成功后,结果窗口会显示二值图像数据。您还可以右键单击图表,将其导出为图像文件。图像的尺寸由 ChartConfig 配置中的宽度和高度参数决定。
添加到 .jsonc 数据中的功能信息会以注释的形式存储,就像我们切换回文本视图时所看到的。

如果我们想将相同的函数应用于从API获取的其他JSON数据,我们有两种选择。我们可以使用XQuery辅助窗口来临时存储一个表达式,然后将其应用于另一个.jsonc文档;或者,我们可以复制并粘贴整个表达式集合。
首先,为了更深入地分析,我们来增加一些计算

从原始文档复制评论内容,然后将其粘贴到通过API创建的新数据集,即可立即生成分析结果

您可以轻松地与团队中的其他成员分享您的发现。如果您点击功能定义旁边的磁盘图标,结果将以 JSON 数据格式嵌入到文件中:

或者,您可以将图表保存为图像文件,以便将其用于报告中

每个数据集成和报表任务都需要从对源数据的清晰理解开始。使用 XMLSpy 分析 JSON 数据可以帮助您更快地完成自己的项目。此外,这个演示视频展示了 JSON 网格视图的各种功能,包括筛选器、函数、图表等,以及许多其他强大的特性。
立即下载免费试用版, 其中包含在线帮助、教程以及大量实际案例!