其他分享
首页 > 其他分享> > JSON写模块

JSON写模块

作者:互联网

数据下载百度网盘 请输入提取码

提取码:2021

介绍

FME 提供了编写 JSON 数据的多种方法。此表概述了方法及其常见用例:

 

方法

常见情况

JSON Writer

写简单,无嵌套的JSON

JSONTemplater + Text File Writer

写嵌套的 Json

FeatureWriter

在转换过程中写 Json

HTTPCaller

通过 HTTPCaller请求发送 Json 消息

GeoJSON Writer

JSON 数据遵循 GeoJSON 规范

Esri JSON Writer

JSON 数据遵循 Esri JSON 规范

IMDF Writer

JSON 数据遵循 IMDF GeoJSON 规范

 

本文展示了使用 JSON 写模块写出的简单示例。JSON 写模块提供了一种快速而简单的方法,将您的数据转入 JSON 格式。然而,它只适合写没有嵌套JSON。如果你想写嵌套的JSON,你可以使用JSONTemplater与文本文件写模块。该工作流程包含在下一个教程中。

 

分步说明

1. 启动 FME 工作台并生成工作空间

启动 FME 工作台并单击"生成工作空间"

对于读模块格式,请选择Microsoft Excel。数据集是PublicArt.xlsx,可在上面下载。

单击参数按钮以预览 Excel 数据。您将看到 Excel 工作簿由六个sheet组成,每张都代表温哥华的一个社区:

单击"取消",因为我们不需要修改读模块参数。

对于写模块格式,请选择 JSONJavaScript Object Notation)。对于数据集,请在任何您愿意的地方写出名为"PublicArt.json"的本地 JSON 文件。

单击"参数"按钮。默认情况下,在写给 JSON 时,每个 FME 要素都会成为 JSON 阵列中的一个元素,其属性嵌套在它下面。FME 功能类型包含为属性,json_featuretype。默认情况下,请检查"写几何",它允许您在目的地 JSON 文件中以多种格式包含 FME 几何形状。

对于本文,我们将每个PublicArt sheet作为 JSON 阵列中的元素进行编写,但我们希望将neighborhood作为属性。由于源 Excel 文件中的每个表都对应于neighborhood,因此我们可以简单地将默认json_featuretype属性重命名为"neighborhood"

取消检查写Geometry,因为我们不想将Geometry包含在我们简单的JSON输出中。

我们可以将剩余的写模块参数保留为默认值。您的编写者参数对话应是这样的:

单击"确定"

生成工作空间对话应是这样的:

单击"确定"

您的工作空间将生成,并会看起来像这样:

 

2. 运行工作空间

单击"运行"按钮以运行工作空间。一旦您的工作空间成功运行,请单击"Downtown"要素集选择它。然后单击"Inspec"按钮,打开预览中的输出数据集:

您应该查看桌视图中显示的Downtown数据集及其所有原始属性。您可以通过打开显示控制窗口来验证"neighborhood"的功能类型属性是否用于将数据拆分为功能类型,以查看每个区块是 JSON 文件中的功能类型:

 

3. 检查结果

如果您在文本编辑器(如记事本)中检查 JSON 文件,您会注意到每个功能都有Neighborhood属性:

[

    {

        "Neighborhood" : "Downtown",

        "Name" : "Harbour Centre Parkade",

        "Title" : "The Belonging Action",

        "Longitude" : -123.110097741722,

        "Latitude" : 49.2837806793832

    },

]

但是,您也会注意到,这不是组织 JSON 文件的非常有效的方法,因为它根本没有利用 JSON 的嵌套结构。它可以与Neighborhood作为层次的顶层结构,每个艺术装置下相关的Neighborhood,例如:

{

    "Downtown": [{

            "Name": "Harbour Centre Parkade",

            "Title": "The Belonging Action",

            "Longitude": -123.110097741722,

            "Latitude": 49.2837806793832

        },

        {

            "Name": "Chinese Cultural Centre",

            "Title": "China Gate",

            "Longitude": -123.103282272368,

            "Latitude": 49.2797561341325

        },

        ...

    ],

    "Strathcona": [{

            "Name": "National  Works Yard",

            "Title": "Roller",

            "Longitude": -123.092675,

            "Latitude": 49.2736209999959

        },

        {

            "Name": "Jim Green Residence",

            "Title": "Entranceway",

            "Longitude": -123.095131,

            "Latitude": 49.2842699999959

        },

        ...

    ],

    ...

}

这一点说明, Fme Json 写模块最好用于不需要嵌套的情况。对于您希望嵌套 JSON 数据的案例,请参阅下一个教程JSONTemplater 转换器

标签:单击,嵌套,JSON,模块,FME,数据
来源: https://blog.csdn.net/fmechina/article/details/121290584