摘要
将要素转换为 JSON 格式。要素的字段、几何和空间参考将转换为相应的 JSON 表示,并写入到扩展名为 .json 的文件中。
用法
如果希望输出文件中的 JSON 表示的可读性更高,则可启用格式设置。通过空格、制表符和回车设置 JSON 的格式,以提高其可读性。经过格式设置的 JSON 可能会有助于应用程序的开发和测试。但是,建议您不要将其用于实际的生产应用程序,因为任何空格均不必要,且会为 JSON 解析程序所忽略。此外,经过格式设置的 JSON 比其相应的 JSON 更具有意义,而且文件大小也比其相应的 JSON 表示大得多。这会影响应用程序的性能。
- 转换不支持要素的连接、关联和附件。
要转换要素类或图层中的要素子集,请使用按属性选择图层或按位置选择图层工具,并且在使用要素转 JSON 之前,请选择要转换的要素子集。
选中输出至 GeoJSON 参数(Python 中的 geoJSON='GEOJSON')以创建符合 GeoJSON 规范的 JSON 输出。Esri JSON 输出是默认设置。
语法
FeaturesToJSON_conversion (in_features, out_json_file, {format_json}, {include_z_values}, {include_m_values}, {geoJSON})
参数 | 说明 | 数据类型 |
in_features | 要转换为 JSON 的要素。 | Feature Layer |
out_json_file | 输出 JSON 文件。 | File |
format_json (可选) | 将设置 JSON 的格式以提高与 ArcGIS REST API 规范的 PJSON(美观的 JSON)格式相似的可读性。
| Boolean |
include_z_values (可选) | 包括要转为 JSON 的要素的 Z 值。
| Boolean |
include_m_values (可选) | 包括要转为 JSON 的要素的 M 值。
| Boolean |
geoJSON (可选) | 创建输出为符合 GeoJSON 规范的 GeoJSON。
| 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(独立脚本)
使用 SelectLayerByAttribute 和 SelectLayerByLocation 将要素子集转换为 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", "lyr")
# Select all cities which overlap the chihuahua polygon
arcpy.SelectLayerByLocation_management("lyr", "intersect", "chihuahua", 0, "new_selection")
# Within selected features, further select only those cities which have a population > 10,000
arcpy.SelectLayerByAttribute_management("lyr", "SUBSET_SELECTION", '"population" > 10000')
# Convert the selected features to JSON
arcpy.FeaturesToJSON_conversion("lyr", r"c:\data\myjsonfeatures.json")
环境
许可信息
- ArcGIS Desktop Basic: 是
- ArcGIS Desktop Standard: 是
- ArcGIS Desktop Advanced: 是