使用 MapForce 进行 JSON 数据映射和转换

JSON 是一种流行的数据传输格式,因为它具有简单的标记、体积小,并且基于 JavaScript 编程语言。 MapForce 支持 JSON 作为 JSON 数据映射和转换的输入和输出格式 例如,MapForce 可以从任何流行的数据库中提取信息,并生成一个准备好进行传输的 JSON 文件。 需求示例: 以下是一个典型的 JSON 数据映射需求示例:一家制造公司通过采用准时生产流程来控制成本,并且库存非常少。新的客户订单记录在销售数据库中,每天结束时,系统会通过查询数据库来统计当天销售所需的组件。所需的零部件将通过采购订单的形式从供应商处订购,采购订单以 JSON 格式传输。

为了使用 MapForce 将 JSON 数据映射并转换,从而生成采购订单,我们需要两个组件:一个用于查询数据库的 SQL 查询语句,以及一个 JSON 实例文档,用于描述采购订单的结构。我们之前已经写过关于数据库映射的文章,最近的一篇是 Altova 产品线中的数据库功能, 因此,我们在这里将重点放在 JSON 组件上。

以下是一个JSON实例文件,它作为数据映射输出的模板:

如果您需要从头开始创建一个 JSON 实例,可以直接在 XMLSpy 中输入,利用其语法高亮、上下文敏感的输入辅助功能、结构标记以匹配括号和花括号,以及其他 JSON 编辑功能。如果您对 JSON 不够熟悉,无法直接输入,您也可以使用 XMLSpy 将一个 XML 实例转换为 JSON 文件。

当我们将 JSON 实例文件导入到数据映射中时,MapForce 会自动根据 JSON Draft 04 规范(http://tools.ietf.org/html/draft-zyp-json-schema-04),从该实例文件生成一个 JSON 模式文件。

JSON 模式被添加到映射中,其数据元素可以被映射为输入或输出

MapForce 的数据库查询窗口提供了一个便捷的场所,用于测试或优化 SQL 查询语句

我们可以将SQL查询语句嵌入到映射关系中,从而为JSON文件提供源数据

然后,我们将SQL查询的结果与JSON组件中的数据元素进行关联

请注意,SELECT语句本身会被映射到位于行数组下方的对象声明(如上图红色高亮部分)。这将导致查询结果中的每一行数据都会在输出文件中创建一个新的JSON对象。

最后,为了完成 JSON 数据的映射和转换,我们需要处理日期。我们需要在输出文件中提供订单日期,并且还需要优化 SQL 查询,使其始终选择当天的数据。MapForce 包含一个名为 "now" 的日期时间函数,它可以同时满足这两个需求。

以下是已完成的 JSON 数据映射:

我们使用了额外的日期时间函数来提取月份和日期,并将这些信息作为参数传递给SQL查询。同时,我们从now函数中移除了时区信息,以便为JSON输出提供日期。 (我们没有提供年份参数,因为我们的测试销售数据库只包含一年的订单。)

点击“地图转换”窗口下方的“输出”按钮,即可执行转换过程,并将转换结果显示出来

现在,JSON数据的映射和转换已经准备就绪,可以每天结束时运行,从而生成用于制造线的零件的JSON采购订单。我们可以通过将映射保存为MapForce Server的执行文件来实现自动化,由MapForce Server进行处理。处理过程可以通过批处理文件、在FlowForce Server的控制下,或者通过MapForce Server的API来实现。

或者,为了更深入地了解映射关系,我们可以打开 MapForce 从 XML 文件自动生成的 JSON 模式文件,然后在 XMLSpy 的模式视图中进行查看

MapForce 是一款强大的数据映射工具,可用于将 JSON 数据映射和转换成或从以下格式:XML、JSON、数据库、EDI、XBRL、纯文本文件、Excel 以及/或 Web 服务。 想要试用它并将 JSON 数据应用于您的项目吗? 立即下载一个功能齐全的免费试用版