Share via


bag_set_key()

bag_set_key() recibe un dynamic contenedor de propiedades, una clave y un valor. La función establece la clave especificada en el contenedor en el valor especificado. La función invalida cualquier valor existente en caso de que la clave ya exista.

Syntax

bag_set_key(Bolsa,Clave,Valor)

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
bag dynamic ✔️ Contenedor de propiedades que se va a modificar.
key string ✔️ Clave que se va a establecer. Una ruta de acceso JSON (puede especificar una clave en los niveles anidados mediante la notación JSONPath ) o el nombre de clave de una clave de nivel raíz. No se admiten la indexación de matrices ni las rutas json raíz.
value cualquier tipo de datos escalar ✔️ Valor en el que se establece la clave.

Devoluciones

Devuelve un dynamic contenedor de propiedades con pares clave-valor especificados. Si el contenedor de entrada no es un contenedor de propiedades, se devuelve un null valor.

Nota

Para tratar nulls como bolsas vacías, use coalesce(x, dynamic({})).

Ejemplos

Uso de una clave de nivel raíz

datatable(input: dynamic) [
    dynamic({'key1': 1, 'key2': 2}), 
    dynamic({'key1': 1, 'key3': 'abc'}),
]
| extend result = bag_set_key(input, 'key3', 3)
input resultado
{
"key1": 1,
"key2": 2
}
{
"key1": 1,
"key2": 2,
"key3": 3
}
{
"key1": 1,
"key3": "abc"
}
{
"key1": 1,
"key3": 3
}

Uso de una clave JSONPath

datatable(input: dynamic)[
    dynamic({'key1': 123, 'key2': {'prop1': 123, 'prop2': 'xyz'}}),
    dynamic({'key1': 123})
]
| extend result = bag_set_key(input, '$.key2.prop1', 'abc')
input resultado
{
"key1": 123,
"key2": {
"prop1": 123,
"prop2": "xyz"
}
}
{
"key1": 123,
"key2": {
"prop1": "abc",
"prop2": "xyz"
}
}
{
"key1": 123
}
{
"key1": 123,
"key2": {
"prop1": "abc"
}
}