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

Краткая информация

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

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

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

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

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

  • Используйте параметр Выходные данные в GeoJSON для создания файла .geojson, который соответствует спецификации GeoJSON. Спецификация GeoJSON не поддерживает кривые; входные объекты, содержащие кривые, будут уплотнены в процессе конвертации.

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

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

Параметры

ПодписьОписаниеТип данных
Входные объекты

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

Feature Layer
Выходной JSON

Выходной файл .json или .geojson.

File
Форматированный JSON
(Дополнительный)

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

  • NOT_FORMATTEDОбъекты не форматируются. Это значение по умолчанию
  • FORMATTEDОбъекты форматируются для улучшения читаемости.
Boolean
include_z_values
(Дополнительный)

Указывает, будет ли JSON включать z-значения объектов.

  • NO_Z_VALUESZ-значения не будут включаться в геометрию, свойство JSON hasZ также не будет включено. Это значение по умолчанию
  • Z_VALUESZ-значения будут включаться в геометрию, свойство JSON hasZ будет задано как True.
Boolean
include_m_values
(Дополнительный)

Указывает, будет ли JSON включать m-значения объектов.

  • NO_M_VALUESM-значения не будут включаться в геометрию, свойство JSON hasM не будет включено. Это значение по умолчанию
  • M_VALUESM-значения будут включаться в геометрию, свойство JSON hasM будет задано как True.
Boolean
geoJSON
(Дополнительный)

Указывает, будут ли выходные данные созданы в формате GeoJSON, в соответствии со спецификацией GeoJSON.

  • GEOJSONВыходные данные будут созданы в формате GeoJSON (файл .geojson).
  • NO_GEOJSONВыходные данные будут созданы в формате GeoJSON (файл .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.conversion.FeaturesToJSON(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.management.MakeFeatureLayer("cities", "cities_lyr") 
 
# Select all cities that overlap the chihuahua polygon
arcpy.management.SelectLayerByLocation("cities_lyr", "intersect", "chihuahua", 
                                       0, "new_selection")

# Within selected features, further select only those cities that have a 
# population > 10,000   
arcpy.management.SelectLayerByAttribute("cities_lyr", "SUBSET_SELECTION", 
                                        '"population" > 10000')
 
# Convert the selected features to JSON
arcpy.conversion.FeaturesToJSON("cities_lyr", r"c:\data\myjsonfeatures.json")

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