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