# JsonSet - 指令碼與圖表函數

JsonSet() 修改包含 JSON (JavaScript 物件標記法) 資料的字串。這可以透過路徑指定的新位置設定或插入 JSON 值。資料必須為有效的 JSON，但可以包含額外的空格或新行。

資訊備註您可以使用 JsonSet 新增任意數量的名稱值組。

語法：

value JsonSet(json, path, value)

傳回的資料類型： 雙值

引數

| 引數 | 描述 |
| --- | --- |
| json | 字串包含 JSON 資料。 |
| path | 必須根據 [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901) 指定路徑。這允許建置 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 基礎事項

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)

#### 圖表運算式

概述

會收到 JSON 資料，形式為單行文字字串。您想要據此更新商品的價格和訂單的總價。

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中稱為 `OrderDetails` 的一個欄位。

載入指令碼

```
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 }'
];
```

結果

載入資料並開啟工作表。建立新的表格並將此欄位新增為維度：

* `OrderDetails`

建立下列量值：

* `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`。

另請參見：

* [IsJson - 指令碼與圖表函數](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonGet - 指令碼與圖表函數](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)