De entidades a JSON (Conversión)

Resumen

Convierte entidades al formato JSON o GeoJSON. Los campos, la geometría y la referencia espacial de las entidades se convertirán a su correspondiente representación JSON y se escribirán en un archivo con una extensión .json o .geojson.

Uso

  • Si desea que la representación JSON en el archivo de salida sea más fácil de leer, puede habilitar la aplicación de formato. El archivo de salida se formateará con espacios, tabulaciones y retornos de carro para mejorar la legibilidad. Una notación JSON formateada puede ser beneficiosa para el desarrollo y pruebas de aplicaciones. Sin embargo, no se recomienda para aplicaciones de producción, ya que todos los espacios en blanco son innecesarios y omitidos por los analizadores de JSON. Además, la notación JSON formateada puede ser mucho mayor que su equivalente JSON y el tamaño del archivo será superior al de su correspondiente representación JSON. Esto puede afectar al rendimiento de las aplicaciones.

  • La conversión no admite uniones, relaciones ni asociaciones de las entidades.

  • Para convertir un subconjunto de entidades en una clase de entidad o una capa de entidades, use las herramientas Seleccionar capa por atributo o Seleccionar capa por ubicación y seleccione el subconjunto de entidades que se van a convertir antes de utilizar De entidades a JSON.

  • Utilice el parámetro Salida a GeoJSON (geoJSON='GEOJSON' en Python) para crear una salida de archivo .geojson conforme a la especificación GeoJSON. La salida JSON de Esri es el valor predeterminado.

  • Si la salida es un archivo GeoJSON, tiene la opción de proyectar las entidades de entrada en el sistema de coordenadas WGS 1984, que es el estándar de la especificación GeoJSON. Se aplicará una transformación geográfica predeterminada si es necesario. Si no se usa está opción, el archivo GeoJSON de salida contendrá una etiqueta crs que se puede utilizar en algunas aplicaciones para definir el sistema de coordenadas o el sistema de referencia de coordenadas. Esta etiqueta no es totalmente compatible con la especificación de GeoJSON.

  • La salida de la herramienta solo incluirá campos de atributos visibles de la entrada. Para incluir todos los campos, debe hacerlos todos visibles. Asimismo, puede usar el parámetro Usar alias de campos para hacer que la salida utilice los alias de los campos en lugar de los nombres de los campos.

Sintaxis

arcpy.conversion.FeaturesToJSON(in_features, out_json_file, {format_json}, {include_z_values}, {include_m_values}, {geoJSON}, {outputToWGS84}, {use_field_alias})
ParámetroExplicaciónTipo de datos
in_features

Las entidades que se van a convertir a JSON.

Feature Layer
out_json_file

El archivo JSON o GeoJSON de salida.

File
format_json
(Opcional)

Especifica si el archivo JSON se formateará para mejorar la legibilidad de forma similar al formato PJSON (Pretty JSON) de la especificación API REST de ArcGIS.

  • NOT_FORMATTED Las entidades no se formatearán. Esta es la opción predeterminada.
  • FORMATTEDLas entidades se formatearán para mejorar la legibilidad.
Boolean
include_z_values
(Opcional)

Especifica si se incluirán los valores z de las entidades en el JSON.

  • NO_Z_VALUES Los valores z no se incluirán en las geometrías y no se incluirá la propiedad hasZ del JSON. Esta es la opción predeterminada.
  • Z_VALUESLos valores z se incluirán en las geometrías y la propiedad hasZ del JSON se establecerá en true.
Boolean
include_m_values
(Opcional)

Especifica si se incluirán los valores m de las entidades en el JSON.

  • NO_M_VALUES Los valores m no se incluirán en las geometrías y no se incluirá la propiedad hasM del JSON. Esta es la opción predeterminada.
  • M_VALUESLos valores m se incluirán en las geometrías y la propiedad hasM del JSON se establecerá en true.
Boolean
geoJSON
(Opcional)

Especifica si la salida se creará como GeoJSON, de acuerdo con la especificación de GeoJSON.

  • GEOJSON La salida se creará con el formato de GeoJSON (.geojson).
  • NO_GEOJSONLa salida se creará como JSON de Esri (.json). Esta es la opción predeterminada.
Boolean
outputToWGS84
(Opcional)

Especifica si las entidades de entrada se proyectarán al sistema de coordenadas geográficas WGS_1984 con una transformación geográfica predeterminada. Este parámetro solo se aplica cuando la salida es GeoJSON.

  • WGS84 Las entidades se proyectarán a WGS_1984.
  • KEEP_INPUT_SRLas entidades no se proyectarán a WGS_1984. El GeoJSON contendrá una etiqueta CRS que define el sistema de coordenadas. Esta es la opción predeterminada.
Boolean
use_field_alias
(Opcional)

Especifica si el archivo de salida utilizará los alias de los campos para los atributos de entidades.

  • USE_FIELD_NAME Los atributos de entidades de salida utilizarán los nombres de los campos. Esta es la opción predeterminada.
  • USE_FIELD_ALIASLos atributos de entidades de salida utilizarán los alias de los campos.
Boolean

Muestra de código

Ejemplo 1 de FeaturesToJSON (ventana de Python)

El siguiente script de la ventana de Python muestra cómo se usa la función FeaturesToJSON para crear archivos JSON y 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")
Ejemplo 2 de FeaturesToJSON (ventana de Python)

El siguiente script de la ventana de Python muestra cómo se usa la función FeaturesToJSON con valores Z y 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")
Ejemplo 3 de FeaturesToJSON (script independiente)

Convierta un subconjunto de entidades a JSON usando SelectLayerByAttribute y 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")

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados