# JsonSetEx - Skript- und Diagrammfunktion

JsonSetEx() ändert Strings, die JSON-Daten (JavaScript Object Notation) enthalten. Es können JSON-Werte mit dem neuen, vom Pfad angegebenen Speicherort festgelegt oder eingefügt werden. Die Daten müssen gültiges JSON sein, können aber weitere Leerzeichen oder neue Zeilen enthalten.

InformationshinweisSie können mit JsonSetEx eine beliebige Anzahl von Name-Wert-Paaren hinzufügen.

Syntax:

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

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| json | String mit JSON-Daten |
| path | Der Pfad muss gemäß [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901) angegeben werden. Dies ermöglicht ein Buildup von Eigenschaften innerhalb von JSON-Daten, ohne komplexe Teilstrings oder Indexfunktionen und Verkettung zu verwenden. |
| value | Der neue String-Wert im JSON-Format. |

Beispiel:

Mit dem folgenden Ladeskript werden Daten geladen und im JSON-Format formatiert:

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

Daraus ergeben sich die folgenden JSON-Daten:

```
{"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"} 
```