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。
另請參見: