---
title: "使用过滤器、公式和图表分析 JSON 数据"
date: "2022-05-04"
categories: 
  - "json"
  - "tools"
tags: 
  - "data-analysis"
  - "grid-view"
  - "json"
  - "tools"
  - "xmlspy"
description: 了解如何使用XMLSpy的筛选器、公式和图表，有效地分析JSON数据。学习提高数据清晰度和洞察力的技巧。
---
Status: #blog

Tags:  #data-analysis #grid-view #json #tools #xmlspy

Categories: [json](/blog/zh/category/json.md) | [development](/blog/zh/category/development.md)
# 使用过滤器、公式和图表分析 JSON 数据

软件开发人员和其他数据专业人士在设计高效的数据处理流程之前，通常需要检查新的数据实例。 随着 JSON 成为数据交换的更受欢迎的格式，为了减小数据传输量，可能会牺牲底层数据结构的清晰度。

XMLSpy 支持查看、建模和[编辑 JSON 文件](https://www.altova.com/zh/xmlspy-xml-editor/json_editor)，并提供丰富的工具来分析 JSON 数据，包括应用过滤器、公式和图表。

我们来了解一下。

![](/blog/images/weather_forecast.jpg)

<!--more-->

XMLSpy的在线帮助文档以及随XMLSpy一起安装的示例项目，是学习和入门的绝佳资源。

在线帮助包含了使用过滤器和公式的说明和图示。在下面的图片中，一个过滤器被应用于一个包含唱片数据的 JSON 文档，用于仅列出由 Brian May 创作的歌曲

[![在 XMLSpy 的 JSON 网格视图中，可以使用过滤器来分析 JSON 数据。](/blog/images/filter-from-help.png)](filter-from-help.png)

在这个示例中，一个 JSON 文件包含了对一次购物订单的描述，并且会应用一个公式来计算总价

[![JSON 网格视图中的公式示例](/blog/images/formula-from-help.png)](formula-from-help.png)

示例文件 Chart.jsonc 描述了每个月的最低和最高温度。这些数据用于创建一个图表，该图表还显示了每个月的计算平均值

[![将图表应用于 JSON 网格视图，以分析 JSON 数据](/blog/images/chart-example-grid.png)](chart-example-grid.png)

以上所有图片都是从 .jsonc 文件生成的。由于除了 JSON5 之外的其他 JSON 格式不允许添加注释，因此引入了带有注释的 JSON 格式（JSONC），以便在 JSON 文档中允许添加注释。

JSON Grid 视图中的筛选、公式和图表功能，都是以 XQuery 函数的形式实现，这些函数以注释的形式存储在代码中，由 XMLSpy 解释器用于分析 JSON 数据。您可以通过在文本视图中查看 Chart.jsonc 文件来了解这一点

[![图表示例，以文本视图显示。](/blog/images/chart-example-text.png)](chart-example-text.png)

这些例子可以为高效解决实际开发难题提供策略，尤其适用于需要从外部来源读取大型 JSON 数据文件的项目。

### 分析从Web服务获取的JSON数据

假设我们被要求处理来自世界各地任意数量城市的天气预报数据，预报周期为5天。这类数据可能对预测主要航线上的运输时间表，甚至对在热带地区度假的休闲船员都很有用。有很多API可以用来获取天气信息，但它们提供的数据格式略有不同。 在这篇文章中，我们将分析来自openweathermap.org API的数据。  

您可以在 XMLSpy 的“文件/打开”主菜单中，直接向 API 发送 REST 请求。只需点击“打开”对话框底部的“切换到 URL”按钮，然后在“文件 URL”字段中输入 API 调用地址即可

[![在 XMLSpy 中，从 Web 服务 URL 打开 JSON 文件](/blog/images/URL-open-dialog.png)](URL-open-dialog.png)

API调用的结果将在主编辑窗口中打开。由于JSON数据中没有用于标识格式或版本的头部信息，因此它不会自动被识别。但是，您可以选择“文件/另存为”，并使用“.jsonc”文件扩展名来保存

[![XMLSpy 从指定 URL 获取的 JSON 数据](/blog/images/example1-1.png)](example1-1.png)

点击“网格”按钮后，界面会切换到网格视图，此时 JSON 数据会变得更容易理解

[![在 XMLSpy 的网格视图中分析 JSON 数据](/blog/images/example1-2.png)](example1-2.png)

首先，我们可以检查一下该地区的气温是否预测会降至冰点以下。这可以通过对列表数组应用筛选条件来实现。我们可以点击位于数组顶部“[ ]”列表右侧的筛选图标，然后输入一个XQuery表达式。可以参考XMLSpy帮助文档中的筛选示例，以了解语法。 筛选条件会立即生效，只显示气温低于冰点的预测结果：

[![对 JSON 数据应用过滤器进行分析](/blog/images/example1-3.png)](example1-3.png)

由于我们目前只关注温度值，因此我们还通过点击每个项目编号左侧的灰色滚动条，将数组中每个项目的视图进行了折叠，如图所示。现在可以清楚地看到，这个地方的夜晚可能会比较寒冷！

现在，我们可能需要找到这个预测中预测的最低温度。我们可以使用一个公式来实现这一点。在下面的图片中，我们在列表数组中插入了一个新的节点，将其类型更改为“公式”，并为这个公式指定了一个名称。与其直接在网格视图中输入公式，我们可以使用 XQuery 辅助窗口来构建、测试和调试一个 XQuery 表达式：

[![在 JSON 网格视图中使用 XQuery 辅助窗口构建公式](/blog/images/example1-4.png)](example1-4.png)

我们可以将从 [XQuery 编辑器](https://www.altova.com/zh/xmlspy-xml-editor#xquery_editor) 中复制的完整表达式粘贴到 JSON 网格视图中

[![在 XQuery 窗口中，您可以构建、测试和调试公式](/blog/images/example1-5.png)](example1-5.png)

采用类似的方法，并以 Chart.jsonc 示例为基础，我们可以添加一个图表来可视化数据：

[![使用图表来可视化 JSON 数据](/blog/images/example1-6-2.png)](example1-6-2.png)

“ChartConfig”元素定义了图表函数所使用的参数，但实际上，图表函数本身也可以在XQuery窗口中构建

[![在 XQuery 窗口中创建图表表达式](/blog/images/example1-6a.png)](example1-6a.png)

评估成功后，结果窗口会显示二值图像数据。您还可以右键单击图表，将其导出为图像文件。图像的尺寸由 ChartConfig 配置中的宽度和高度参数决定。

添加到 .jsonc 数据中的功能信息会以注释的形式存储，就像我们切换回文本视图时所看到的。

[![图表在文本视图中的显示方式](/blog/images/example1-7.png)](example1-7.png)

如果我们想将相同的函数应用于从API获取的其他JSON数据，我们有两种选择。我们可以使用XQuery辅助窗口来临时存储一个表达式，然后将其应用于另一个.jsonc文档；或者，我们可以复制并粘贴整个表达式集合。

首先，为了更深入地分析，我们来增加一些计算

[![包含数值摘要的 JSON 数据。](/blog/images/example1-8.png)](example1-8.png)

从原始文档复制评论内容，然后将其粘贴到通过API创建的新数据集，即可立即生成分析结果

[![将公式和图表复制到新的 JSON 文件](/blog/images/example1-9.png)](example1-9.png)

您可以轻松地与团队中的其他成员分享您的发现。如果您点击功能定义旁边的磁盘图标，结果将以 JSON 数据格式嵌入到文件中：

[![嵌入公式会生成 JSON 格式的数据](/blog/images/example1-10.png)](example1-10.png)

或者，您可以将图表保存为图像文件，以便将其用于报告中

[![一张用于报告中的图表图像。](/blog/images/Martinique-forecast.png)](Martinique-forecast.png)

每个数据集成和报表任务都需要从对源数据的清晰理解开始。使用 XMLSpy 分析 JSON 数据可以帮助您更快地完成自己的项目。此外，这个[演示视频](https://www.youtube.com/watch?v=ZTt-_Te9a9c)展示了 JSON 网格视图的各种功能，包括筛选器、函数、图表等，以及许多其他强大的特性。

[立即下载免费试用版，](https://www.altova.com/zh/download) 其中包含在线帮助、教程以及大量实际案例！
