GitHubContribuir en GitHub: Editar en línea

extract_json (), extractjson ()

Obtener un elemento especificado de un texto JSON utilizando una expresión de vía de acceso.

Opcionalmente, convierta la serie extraída a un tipo específico.

Nota

Las funciones extract_json() y extractjson() se interpretan de forma equivalente.

extract_json("$.hosts[1].AvailableMB", EventText, typeof(int))

Sintaxis

extract_json(jsonPath, dataSource, tipo)

extractjson(jsonPath, dataSource, tipo)

Argumentos

  • jsonPath: serie JSONPath que define un descriptor de acceso en el documento JSON.
  • dataSource: un documento JSON.
  • type: un literal de tipo opcional (por ejemplo, typeof (long)). Si se proporciona, el valor extraído se convierte a este tipo.

Devoluciones

Esta función realiza una consulta JSONPath en dataSource, que contiene una serie JSON válida, convirtiendo opcionalmente ese valor a otro tipo en función del tercer argumento.

Ejemplo

Nota

Cambie las variables para asegurarse de que reflejan los registros en el sistema.

La notación de [corchete] y la notación de puntos (.) son equivalentes:

T
| extend value_extracted = extract_json("$.hosts[1].AvailableMB", payload, typeof(int))

T
| extend value_extracted = extract_json("$['hosts'][1]['AvailableMB']", payload, typeof(int))

Ejemplo 2

La notación de [corchete] y la notación de puntos (.) son equivalentes:

events    
    | project original_time, data_source_name, payload,event_uuid
    //--- Search for the last 5 minutes of data
    | where original_time > ago(5m)  and payload contains  '{' and event_uuid == 'xxxxxxxx-xxxxxxxx'
    | project e = extract_json('$.variable.full.path', payload, typeof(string)) 
    | take 10000

Sugerencias de rendimiento

  • Aplicar cláusulas where antes de utilizar extract_json()
  • Considere la posibilidad de utilizar una coincidencia de expresión regular con extract en su lugar. Esto se puede ejecutar mucho más rápido, y es efectivo si el JSON se genera a partir de una plantilla.
  • Utilice parse_json() si necesita extraer más de un valor del JSON.
  • Considere la posibilidad de analizar el JSON durante la ingestión declarando que el tipo de la columna es dinámico.