# JsonSetEx — функция скриптa и диаграммы

JsonSetEx() изменяет строки, содержащие данные JSON (JavaScript Object Notation). Может задать или вставить значения JSON с указанием нового местоположения в пути. Данные должны быть допустимым кодом JSON, но могут содержать дополнительные пробелы и символы новой строки.

Примечание к информацииМожно добавить любое число пар name-value с помощью 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"} 
```