JSONFragmenter
提取部分JSON (JavaScript对象表示法)格式的文本到新的FME功能。
输出端口
对于每个新创建的特性,JSON属性参数标识的属性将包含JSON查询引用的JSON文本。
json_type属性将包含文本的JSON类型(对象、数组、字符串等),而json_index参数将包含JSON值的对象键或数组索引。
如果JSON查询不能被完全计算,则会记录一条消息,并继续转换。
参数
JSON属性参数标识包含原始JSON文本的特性属性。
方法输出的每个新创建的功能爆炸端口,此参数标识的属性将包含JSON查询引用的JSON文本。
JSON查询参数是引用JSON值的JSON查询,它将成为新的FME特性。
JSON查询是一种引用JSON文本中的值的机制。最外层的JSON值(必须是对象或数组)总是由术语“JSON”引用。可以使用类似javascript的方括号索引操作符引用包含的值。可以使用数组中的从零开始的位置来引用数组中的值(例如,第三个元素是json[2])。
可以使用对象键名引用对象中的值。例如:
json(“关键”)
可以使用通配符索引来集体引用数组或对象中的所有值。例如:
json (*)
此转换器使用的查询可以有多个表达式,由“+”运算符分隔。这允许转换器引用json文本不同区域中的值。例如:
json[“结果集1”][*]+json[“结果集2”][*]
有关json查询的更多信息,请参见下文。
如果json文本是geojson或esrijson格式,则可以选择“explode as format”到“geojson”或“esrijson”。这将通知jsonqueryfactory需要自动识别geojson或esrijson特性,并从查询结果中提取这些特性。
默认格式“json”将json文本解析为纯json。如果没有构造GeoJSON或ESRIJSON特性,将发出警告,文本将被视为纯JSON。
如果json查询生成一个json对象,则可以通过将“将键作为属性加载”设置为“是”,使用键为新功能生成其他属性。如果JSON查询生成一个JSON数组,并为'Prefix New Attributes With'参数提供一个值,那么将创建一个列表属性,使用前缀作为列表名称,使用JSON数组值作为列表元素。
注:除非首先使用对属性列表进行操作的转换器(如ListExploder或ListConcatenator。所有属性列表转换器都显示在“转换器帮助”的“内容”窗格中列表。或者,AttributeExposer可以使用。
当“将键作为属性加载”参数设置为“是”时,此参数控制创建的属性。如果设置为“否”,则每个JSON对象键将成为一个属性,相应的JSON值将成为属性值。如果此参数设置为“是”,则只有简单类型(整数、字符串等)的对象值将成为属性值,而嵌套对象和数组将递归展平。
如果“将键作为属性加载”参数设置为“是”,则可以使用“将新属性添加为前缀”参数提供一个字符串,以便为新创建的属性添加前缀。如果选择的格式是geojson或esrijson,那么特定于格式的键将不会作为属性添加,而是由相应的格式解析器处理。
公开任何属性,以便其他转换器可以使用它们。直接在文本框中键入或单击“浏览”按钮以显示编辑器并在其中添加属性。
JSON查询
JSON查询是在JSON文档中引用值的简单机制。查询由一个或多个表达式组成,表达式之间用+运算符分隔。表达式有三种类型:JSON结构表达式、JSON属性表达式和字符串文字表达式。
JSON结构表达式
JSON结构表达式可以引用JSON文档中的值。最外层的JSON元素(必须是数组或对象)总是由术语JSON引用,而这个术语必须出现在每个JSON结构表达式的开头。可以使用类似javascript的方括号索引操作符引用子元素。例如,如果最外层的元素是一个数组,则数组的第一个元素可以由表达式json[0]引用,第二个元素可以由表达式json[1]引用,依此类推。同样,如果最外层的JSON元素是一个对象,键是“name”和“address”,那么这些键的值可以分别由表达式JSON ["name"]和JSON ["address"]引用。
这些索引操作符可以级联。例如,最外层的JSON元素是一个具有键和“address”的对象,其值是一个包含键“city”和“province”的对象,那么这些值可以通过表达式JSON ["address"]["city"]和JSON ["address"]["province"]来引用。
为了引用数组或对象中的所有值,可以使用通配符索引*。例如,如果最外层的JSON元素是一个数组,那么表达式JSON[*]引用数组中的每个元素。
JSON属性表达式
属性表达式是如上所述的结构表达式,后跟A。(点)操作符和属性名。目前,惟一支持的属性是类型和大小。type属性返回JSON结构表达式引用的JSON值的类型。例如,如果最外层的JSON元素是一个数组,而数组的第一个元素是一个字符串,那么表达式JSON[0]。类型的值为string。size属性只能应用于数组,它返回数组中元素的数量。
字符串表达式
字符串文字表达式只是引用的字符串值,例如“这是一个字符串文字表达式”。
FME授权级别
FME专业版及以上
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配transformer参数。更高级的功能,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击在可适用的参数旁边。有关更多信息,请参见变压器参数菜单选项。
变压器的分类
搜索FME知识中心
有关此变压器的示例和信息,请参阅FME知识中心。
标签关键词:JSONExploder