# JsonSetEx スクリプトおよびチャート関数

JsonSetEx() は、JSON (JavaScript Object Notation) データを含む文字列を変更します。パスにより指定される新しい場所を使用した JSON 値を設定もしくは挿入することができます。データは有効な JSON にする必要がありますが、余分なスペースや改行を含めることができます。

情報メモJsonSetEx を使用すると、任意の数の名前と値のペアを追加できます。

構文:

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

戻り値データ型： デュアル

引数

| 引数 | 説明 |
| --- | --- |
| json | JSON データを含む文字列。 |
| path | パスは [RFC6901](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"} 
```