bag_set_key()

bag_set_key() 接收 dynamic 属性包、键和值。 该函数将包中的给定键设置为给定值。 如果该键已存在,该函数将重写任何现有值。

语法

bag_set_key(bag,key,value)

详细了解语法约定

参数

客户 类型​​ 必需 说明
bag dynamic 要修改的属性包。
string 要设置的键。 JSON 路径(可以使用 JSONPath 表示法在嵌套级别指定键)或根级别键的键名称。 不支持数组索引或根 JSON 路径。
value 任何标量数据类型 要将键设置为的值。

返回

返回包含指定键值对的 dynamic 属性包。 如果输入包不是属性包,则返回 null 值。

注意

若要将 null 视为空包,请使用 coalesce(x, dynamic({}))

示例

使用根级别键

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
}

使用 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"
}
}