# JsonSetEx 指令碼與圖表函數

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

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

語法：

JsonSetEx(json, path, value, ...)

傳回的資料類型： 雙值

引數

| 引數 | 描述 |
| --- | --- |
| json | 字串包含 JSON 資料。 |
| path | 必須根據 [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901) 指定路徑。這允許建置 JSON 資料的內部屬性，而不必使用複雜的子字串或索引函數和串連。 |
| value | 使用 JSON 格式的新字串值。 |

範例：

以下載入指令碼載入資料並將其格式化為 JSON 格式：

```
Data:
Load *,
	JsonSetEx('{"fax":123}',
		'/name', Name,
		'/address', Address,
		'/phone', Phone,
		'/fax', FaxOrNull) AS Json;

LOAD *, If(Fax='-',Null(),Fax) AS FaxOrNull;

LOAD * INLINE [
	Id, Name,       Address,     Phone,     Fax
	1,  John Doe,   Oak Way,   1 234 567, 1 234 568
	2,  Jane Doe, Maple Way, 123456,    -
	3,  Mr Xavier,       Spruce Way,   1-800-MRX
]; 
```

這會產生以下 JSON 資料：

```
{"name":"John Doe","address":"Oak Way","phone":"1 243 567","fax":"1 234 568"}
{"name":"Jane Doe","address":"Maple Way","phone":123456}
{"fax":"","name":"Mr Xavier","address":"Spruce Way","phone":"1-800-MRX"} 
```