要素转 JSON (转换)

摘要

将要素转换为 JSON 或 GeoJSON 格式。要素的字段、几何和空间参考将转换为相应的 JSON 表示,并写入到扩展名为 .json.geojson 的文件中。

使用情况

  • 如果希望输出文件中的 JSON 表示的可读性更高,则可启用格式设置。通过空格、制表符和回车设置输出文件的格式,以提高其可读性。经过格式设置的 JSON 可能会有助于应用程序的开发和测试。但是,建议您不要将其用于生产应用程序,因为任何空格均不必要,且会为 JSON 解析程序所忽略。此外,经过格式设置的 JSON 比其相应的 JSON 更具有意义,而且文件大小也比其相应的 JSON 表示大得多。这会影响应用程序的性能。

  • 转换不支持要素的连接、关联和附件。

  • 要转换要素类或图层中的要素子集,请使用按属性选择图层按位置选择图层工具,并且在使用要素转 JSON 之前,请选择要转换的要素子集。

  • 使用输出至 GeoJSON 参数(Python 中的 geoJSON='GEOJSON')来创建符合 GeoJSON 规范.geojson 文件输出。Esri JSON 输出是默认设置。

  • 一旦输出为 GeoJSON 文件,您可以选择将输入要素投影到 WGS 1984 坐标系,这是 GeoJSON 规范的标准设置。如有必要,可应用默认地理变换。如果未使用此选项,则输出 GeoJSON 文件将包含,可在某些应用程序中用于定义坐标系或坐标参考系的 crs 标签。GeoJSON 规范并未完全支持此标签。

  • 该工具的输出仅包含输入中的可见属性字段。要包含所有字段,您必须使其全部可见。另外,你可以使用使用字段别名参数,使输出使用字段别名而不是字段名称。

参数

标注说明数据类型
输入要素

要转换为 JSON 的要素。

Feature Layer
输出 JSON

输出 JSON 或 GeoJSON 文件。

File
格式化的 JSON
(可选)

用于指定是否设置 JSON 的格式,以提高与 ArcGIS REST API 规范的 PJSON(美观的 JSON)格式相似的可读性。

  • 取消选中 - 将不会设置要素的格式。这是默认设置。
  • 已选中 - 会按照 PJSON 规范设置要素的格式。

Boolean
包括 Z 值
(可选)

用于指定是否包括要转为 JSON 的要素的 Z 值。

  • 取消选中 - Z 值不会包括在几何中,且 JSON 的 hasZ 属性也不会包括在内。这是默认设置。
  • 已选中 - Z 值将包括在几何中,且 JSON 的 hasZ 属性将设置为 True。

Boolean
包括 M 值
(可选)

用于指定是否包括要转为 JSON 的要素的 M 值。

  • 取消选中 - M 值不会包括在几何中,且 JSON 的 hasM 属性也不会包括在内。这是默认设置。
  • 已选中 - M 值将包括在几何中,且 JSON 的 hasM 属性将设置为 True。

Boolean
输出至 GeoJSON
(可选)

用于指定是否将输出创建为 GeoJSON。

  • 未选中 - 输出将创建为 Esri JSON (.json)。这是默认设置。
  • 已选中 - 输出将创建为 GeoJSON 格式 (.geojson)。

Boolean
投影到 WGS_1984
(可选)

用于指定是否将输入要素投影到采用默认地理变换的地理坐标系 WGS_1984。该参数仅适用于输出为 GeoJSON 的情况。

  • 选中 - 要素将投影到 WGS_1984。
  • 未选中 - 要素不会投影到 WGS_1984。GeoJSON 将包含用于定义坐标系的 CRS 标签。这是默认设置。

Boolean
使用字段别名
(可选)

指定输出文件是否将使用要素属性的字段别名。

  • 未选中 - 输出要素属性将使用字段名称。这是默认设置。
  • 选中 - 输出要素属性将使用字段别名。

Boolean

arcpy.conversion.FeaturesToJSON(in_features, out_json_file, {format_json}, {include_z_values}, {include_m_values}, {geoJSON}, {outputToWGS84}, {use_field_alias})
名称说明数据类型
in_features

要转换为 JSON 的要素。

Feature Layer
out_json_file

输出 JSON 或 GeoJSON 文件。

File
format_json
(可选)

用于指定是否设置 JSON 的格式,以提高与 ArcGIS REST API 规范的 PJSON(美观的 JSON)格式相似的可读性。

  • NOT_FORMATTED 将不会设置要素的格式。这是默认设置。
  • FORMATTED将设置要素格式以提高可读性。
Boolean
include_z_values
(可选)

用于指定是否包括要转为 JSON 的要素的 Z 值。

  • NO_Z_VALUES Z 值不会包括在几何中,且 JSON 的 hasZ 属性也不会包括在内。这是默认设置。
  • Z_VALUESZ 值将包括在几何中,且 JSON 的 hasZ 属性将设置为 True。
Boolean
include_m_values
(可选)

用于指定是否包括要转为 JSON 的要素的 M 值。

  • NO_M_VALUES M 值不会包括在几何中,且 JSON 的 hasM 属性也不会包括在内。这是默认设置。
  • M_VALUESM 值将包括在几何中,且 JSON 的 hasM 属性将设置为 True。
Boolean
geoJSON
(可选)

用于指定是否将输出创建为符合 GeoJSON 规范的 GeoJSON。

  • GEOJSON 输出将创建为 GeoJSON 格式 (.geojson)。
  • NO_GEOJSON输出将创建为 Esri JSON (.json)。这是默认设置。
Boolean
outputToWGS84
(可选)

用于指定是否将输入要素投影到采用默认地理变换的地理坐标系 WGS_1984。该参数仅适用于输出为 GeoJSON 的情况。

  • WGS84 要素将投影到 WGS_1984。
  • KEEP_INPUT_SR要素不会投影到 WGS_1984。GeoJSON 将包含用于定义坐标系的 CRS 标签。这是默认设置。
Boolean
use_field_alias
(可选)

指定输出文件是否将使用要素属性的字段别名。

  • USE_FIELD_NAME 输出要素属性将使用字段名称。这是默认设置。
  • USE_FIELD_ALIAS输出要素属性将使用字段别名。
Boolean

代码示例

FeaturesToJSON 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 FeaturesToJSON 函数创建 JSON 和 PJSON 文件。

import arcpy
import os
arcpy.env.workspace = "c:/data"
arcpy.FeaturesToJSON_conversion(os.path.join("outgdb.gdb", "myfeatures"), 
                                "myjsonfeatures.json")
arcpy.FeaturesToJSON_conversion(os.path.join("outgdb.gdb", "myfeatures"), 
                                "mypjsonfeatures.json", "FORMATTED")
FeaturesToJSON 示例 2(Python 窗口)

以下 Python 窗口脚本演示了如何通过 Z 值和 M 值使用 FeaturesToJSON 函数。

import arcpy
import os
arcpy.env.workspace = "c:/data"
arcpy.FeaturesToJSON_conversion(os.path.join("outgdb.gdb", "myfeatures"), 
                                "myjsonfeatures.json", "NOT_FORMATTED",	
                                "Z_VALUES", "M_VALUES")
FeaturesToJSON 示例 3(独立脚本)

使用 SelectLayerByAttributeSelectLayerByLocation 将要素子集转换为 JSON。

# Import system modules
import arcpy
# Set the workspace
arcpy.env.workspace = "c:/data/mexico.gdb"
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("cities", "cities_lyr") 
 
# Select all cities that overlap the chihuahua polygon
arcpy.SelectLayerByLocation_management("cities_lyr", "intersect", "chihuahua", 
                                       0, "new_selection")
# Within selected features, further select only those cities that have a 
# population > 10,000   
arcpy.SelectLayerByAttribute_management("cities_lyr", "SUBSET_SELECTION", 
                                        '"population" > 10000')
 
# Convert the selected features to JSON
arcpy.FeaturesToJSON_conversion("cities_lyr", r"c:\data\myjsonfeatures.json")

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题