Объекты в JSON (Конвертация)

Сводка

Конвертирует объекты в формат JSON или GeoJSON. Поля, геометрия и пространственная привязка объектов конвертируется в соответствующее представление JSON и записываются в файл с расширением .json или .geojson.

Использование

  • Если вы хотите, чтобы JSON-представление в выходном файле было более понятным, можно использовать форматирование. Выходной файл будет отформатирован с использованием пробелов, табуляторов и переходов на новые строки, что улучшит его читаемость. Форматированный JSON может быть удобен для разработки приложений и тестирования. Однако не рекомендуется использовать форматирование в реальных приложениях, поскольку все пробелы не являются необходимыми и игнорируются обработчиками JSON. Кроме того, форматированный JSON занимает значительно больше места, чем неформатированный, и размер файла будет больше, чем соответствующее представление JSON. Это может повлиять на производительность приложения.

  • Конвертация не поддерживает соединения, связи и вложения объектов.

  • Для конвертации поднабора объектов из класса объектов или слоя используйте инструменты Выбрать в слое по атрибуту или Выбрать в слое по расположению и выберите поднабор объектов для конвертации перед использованием инструмента Объекты в JSON.

  • Используйте параметр Выходные данные в GeoJSON (geoJSON='GEOJSON' в Python) для создания файла .geojson, который соответствует спецификации GeoJSON. Значением выходного формата по умолчанию является Esri JSON.

  • Если в качестве выходного файла указан файл GeoJSON, у вас есть возможность спроецировать входные объекты в систему координат WGS 1984, которая является стандартом для спецификации GeoJSON. При необходимости будет применено географическое преобразование по умолчанию. Если опция не используется, выходной файл GeoJSON будет содержать тег crs, который используется в некоторых приложениях для определения системы координат. Этот тег не поддерживается полностью в спецификации GeoJSON.

  • В выходных данных инструмента будут только видимые атрибутивные поля входных данных. Чтобы включить все поля, их нужно сделать видимыми. Кроме того, вы можете использовать параметр Использовать псевдонимы полей, чтобы в выходных данных вместо имен полей использовались псевдонимы.

Синтаксис

arcpy.conversion.FeaturesToJSON(in_features, out_json_file, {format_json}, {include_z_values}, {include_m_values}, {geoJSON}, {outputToWGS84}, {use_field_alias})
ParameterОбъяснениеТип данных
in_features

Объекты для конвертации в JSON.

Feature Layer
out_json_file

Выходной файл JSON или GeoJSON.

File
format_json
(Дополнительный)

Указывает, будет ли JSON отформатирован для улучшения читаемости, в соответствии со спецификациями ArcGIS REST API для формата PJSON (Pretty 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 для выполнения функции FeaturesToJSON с использованием z- и m-значений.

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 (автономный скрипт)

Конвертация поднабора объектов в JSON с помощью SelectLayerByAttribute и SelectLayerByLocation.

# 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: Да

Связанные разделы