JsonSet - 脚本和图表函数
JsonSet() 修改包含 JSON(JavaScript 对象表示法)数据的字符串。它可以使用路径指定的新位置设置或插入 JSON 值。数据必须是有效的 JSON,但可以包含额外的空格或换行符。
语法:
value JsonSet(json, path, value)
返回数据类型: 双
参数
json
|
包含 JSON 数据的字符串。 |
path
|
必须根据 RFC 6901 指定路径。这允许在 JSON 数据中构建属性,而无需使用复杂的子字符串或索引函数以及串联。
|
value
|
JSON 格式的新字符串值。 |
示例:有效和无效的图表表达式
JsonSet( '{}','/a','"b"' )
|
返回 {"a":"b"} |
JsonSet( '[]','/0','"x"' )
|
返回 ["x"] |
JsonSet( '"abc"','','123' )
|
返回 123 |
JsonSet( '"abc"','/x','123' )
|
返回 null。路径未指向 JSON 数据的有效部分。 |
JsonSet( '{"a":{"b":"c"}}','a/b','"x"' )
|
返回 null。路径无效。 |
JsonSet( '{"a":"b"}','/a','abc' )
|
返回 null。值不是有效 JSON。字符串必须用引号括起来。 |
示例 - JsonSet 基本原理
概述
JSON 数据以单行文本字符串的形式接收。您希望相应地更新商品的价格和订单的总价。
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
加载脚本
Example:
Load *
INLINE [OrderDetails
'{ "order_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total_price": 2400 }'
];
结果
加载数据并打开工作表。创建新表并将该字段添加为维度:
创建以下度量:
JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200),使用 JSON 字符串中相应键的正确路径将价格设置为 1100 并将总价设置为 2200。
结果表 OrderDetails | JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200) |
---|
{ "order_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total_price": 2400 } | {"order_id":"12345","customer":{"name":"John Doe","email":"john.doe@example.com"},"items":{"product":"Laptop","quantity":2,"price":1100},"total_price":2200} |
度量的输出分别将 price 和 total price 键更新为 1100 和 2200。
另请参阅: