bag_set_key()

bag_set_key() riceve un dynamic contenitore di proprietà, una chiave e un valore. La funzione imposta la chiave specificata nel contenitore sul valore specificato. La funzione esegue l'override di qualsiasi valore esistente nel caso in cui la chiave esista già.

Sintassi

bag_set_key(Borsa,Chiave,Valore)

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
bag dynamic ✔️ Contenitore delle proprietà da modificare.
key string ✔️ Chiave da impostare. Un percorso JSON (è possibile specificare una chiave nei livelli annidati usando la notazione JSONPath ) o il nome della chiave per una chiave di livello radice. L'indicizzazione di matrici o i percorsi JSON radice non sono supportati.
value qualsiasi tipo di dati scalare ✔️ Valore su cui è impostata la chiave.

Restituisce

Restituisce un dynamic contenitore di proprietà con coppie chiave-valore specificate. Se il contenitore di input non è un contenitore di proprietà, viene restituito un null valore.

Nota

Per trattare nulls come contenitori vuoti, usare coalesce(x, dynamic({})).

Esempio

Usare una chiave a livello radice

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

Usare una chiave 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 result
{
"key1": 123,
"key2": {
"prop1": 123,
"prop2": "xyz"
}
}
{
"key1": 123,
"key2": {
"prop1": "abc",
"prop2": "xyz"
}
}
{
"key1": 123
}
{
"key1": 123,
"key2": {
"prop1": "abc"
}
}