span8
span4
本系列教程概述了使用FME读取、写入和转换JSON数据。
JSON,或JavaScript Object Notation,是一种遵循开放标准的文件格式,其值可以是对象(属性-值对,如{" a ": 5})、数组(如[1,2,3,4])或原语(字符串或数字)。它被广泛用作web交换和消息格式。虽然它在web上流行很大程度上是因为它是JavaScript的原生对象数据结构,但它是一种独立于语言的数据格式。
JSON数据转换为/来自表格或GIS数据的挑战是数据建模的根本差异。JSON通常具有高度嵌套的树结构,而表格和GIS数据通常使用由相关表组成的关系数据库模型。它可能需要多个表来在关系系统中模拟给定的JSON对象。
FME可以处理嵌套数据,但其基本设计更适合处理由特性和属性组成的扁平表格。因此,将JSON数据引入FME需要考虑JSON的结构。
FME |
数据库 |
JSON |
功能 |
记录 |
目的 |
属性 |
场 |
财产 |
列表 |
以逗号分隔 |
大批 |
FME,关系数据库和JSON中的数据结构术语
考虑下面这个嵌套JSON数据的例子,它表示一个表示旧金山机场(SFO)位置的几何点:
{“姓名”:“jsonfeature”,“类型”:“featurecollection”,“功能”:[{id“:”1001“,”几何“:{”类型“:”type“:”point“,”cocordinates“:[ -122.4194155,37.7749295]},“属性”:{“名称”:“SFO”,“类型”:“Airport”}}]}
JSON对象示例
如果在JSON中读取或在FME中编写JSON消息,则可以选择将整个JSON字符串存储为属性值:
_dataset. |
{ “名称”:“JSONFeature”, “类型”:“FeatureCollection”, “特征”:[ { “ID”:“1001”, “几何”:{ “类型”:“点”, "坐标":[-122.4194155,37.7749295] }, “特性” : { “名称”:“旧金山”, “类型”:“机场” } } ] } |
如果您计划将JSON字符串转换为关系数据库格式或表,则可以选择将JSON字符串“扁平化”为包含FME特性和属性的表。创建这样一个扁平的JSON需要选择一个属性来生成特性,每个特性的唯一值将是结果表中的一个新特性或行。例如,在ID属性上扁平上面的JSON字符串将创建以下特性:
ID |
geometry.type |
geometry.coordinates |
properties.name |
properties.type. |
1001 |
观点 |
[-122.4194155, 37.7749295] |
旧金山 |
机场 |
JSON对象示例表示在一个表中
FME为读取、写入和转换JSON数据提供了灵活的选项,使其完全符合数据集成工作流所需的形状。亚搏在线
本概览介绍了本系列教程,概述了JSON格式,并说明了FME如何允许读取JSON的嵌套结构。本系列教程的以下文章详细介绍了使用FME读取、写入和转换JSON数据的选项。
学习如何使用JSON阅读器将JSON数据直接读取到您的工作空间。
了解如何从嵌套的JSON结构中提取坐标信息并使用它来生成FME几何。
通过一个多步骤操作示例了解更高级的JSON读取技术,其中从JSON中提取URL,并将URL提供的数据读入工作空间,使用英国环境署实时洪水监测API.
了解FME提供的用于写入JSON的选项,并查看一个使用JSON写入器的基本示例。
了解如何使用jstemplater变压器使用fme写自定义嵌套的json。
了解FME最受欢迎的JSON变换器的用例以及如何使用它们。
任何时候您都有无法使用在线数据源或饲料的树控件时,最好的选择是将链接放在Web浏览器中,并在本地下载示例JSON响应。然后,本地文件可以用来用树控件查询JSON,以便找到正确的JSON查询,之后您可以将读者指向在线源。
注意我刚刚确认在FME 2018中,在添加读取器后,可以在读取器中编辑“架构扫描模式”和“JSON查询”。我建议在使用JSON时升级到最近的FME发布,以获得最佳效果。如果您在配置JSON阅读器的任何困难时,请联系支持。
©2019 S亚搏在线afe Software Inc |法律