JSON 转要素 (转换)

摘要

用于将 Esri JSON (.json) 格式文件或 GeoJSON (.geojson) 格式文件中的要素集合转换成要素类。

使用情况

  • 如果输入 .json 文件将 hasZhasM 属性设置为 True,输出要素将具有 z 值和 m 值。

  • 如果输入为 .geojson 文件,则必须选择要转换为要素类的几何类型。 GeoJSON 支持同一文件中存在多种要素类型,且要素类必须由要素类型相同的要素组成。

  • 输出中的文本字段长度很长(20 亿个字符),原因是 JSON 和 GeoJSON 格式规范不包括文本属性的长度属性。 要提升转换性能,请使用较大的固定长度而非读取所有值来确定最大字符数。

  • JSON 和 GeoJSON 格式规范不包括存储 datetime 值的标准方法。 可以将 datetime 值表示为自 Unix 时间纪元以来的秒数的整数值。 要将此数字转换为 datetime 值,请使用计算字段工具或 Python 表达式,例如 datetime.datetime.fromtimestamp(!date_field!)

  • 当输入为 .geojson 文件时,第一条记录的属性将用于定义输出要素类的方案。

参数

标注说明数据类型
输入 JSON 或 GeoJSON

将转换为要素类的输入 .json.geojson 文件。

输入文件扩展名将决定为了实现正确转换,工具应使用的格式。 对于 Esri JSON 格式的文件,应使用 .json 扩展名;对于 GeoJSON 格式的文件,应使用 .geojson 扩展名。

File
输出要素类

将包含来自输入 .json.geojson 文件的要素的输出要素类。

Feature Class
几何类型
(可选)

要从 GeoJSON 转换为要素的几何类型。 此参数仅在输入为 .geojson 文件时使用。 如果 .geojson 文件不包含任何指定几何类型,则输出要素类将为空。

  • 点将转换为要素。
  • 多点多点将转换为要素。
  • 折线折线将转换为要素。
  • 面将转换为要素。
String

arcpy.conversion.JSONToFeatures(in_json_file, out_features, {geometry_type})
名称说明数据类型
in_json_file

将转换为要素类的输入 .json.geojson 文件。

输入文件扩展名将决定为了实现正确转换,工具应使用的格式。 对于 Esri JSON 格式的文件,应使用 .json 扩展名;对于 GeoJSON 格式的文件,应使用 .geojson 扩展名。

File
out_features

将包含来自输入 .json.geojson 文件的要素的输出要素类。

Feature Class
geometry_type
(可选)

要从 GeoJSON 转换为要素的几何类型。 此参数仅在输入为 .geojson 文件时使用。 如果 .geojson 文件不包含任何指定几何类型,则输出要素类将为空。

  • POINT点将转换为要素。
  • MULTIPOINT多点将转换为要素。
  • POLYLINE折线将转换为要素。
  • POLYGON面将转换为要素。
String

代码示例

JSONToFeatures 示例(Python 窗口)

以下 Python 脚本演示了如何使用 JSONToFeatures 函数。

import arcpy
import os
arcpy.env.workspace = "c:/data"
arcpy.conversion.JSONToFeatures("myjsonfeatures.json", os.path.join("outgdb.gdb", "myfeatures"))