JsonSet() изменяет строку, содержащую данные JSON (JavaScript Object Notation). Может задать или вставить значение JSON с указанием нового местоположения в пути. Данные должны быть допустимым кодом JSON, но могут содержать дополнительные пробелы и символы новой строки.
Синтаксис:
value JsonSet(json, path, value)
Возвращаемые типы данных: двойное значение
Аргументы
Аргумент
Описание
json
Строка, содержащая данные JSON.
path
Путь должен быть указан в соответствии с RFC 6901. Это позволяет составлять свойства внутри данных 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
Обзор
Данные JSON принимаются в виде текстовой строки в одной строке. Требуется обновить цену товара и общую цену заказа соответственно.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, который загружается в таблицу данных под именем Example.
Одно поле в таблице данных под именем OrderDetails.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
OrderDetails
Создайте следующую меру:
JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200), чтобы установить цену на 1100 и общую цену на 2200, используя правильный путь к соответствующим ключам в строке JSON.
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!