Использование JSONPath для преобразования данных JSON в книгах
Книги могут запрашивать данные из многих источников. Некоторые конечные точки, такие как Azure Resource Manager или пользовательские конечные точки, могут возвращать результаты в формате JSON. Если данные JSON, возвращаемые запрашиваемой конечной точкой, в формате, который не требуется, можно использовать преобразование JSONPath для преобразования JSON в структуру таблицы. Затем можно использовать таблицу для построения визуализаций книги.
JSONPath — это язык запросов для JSON, аналогичный XPath для XML. Как и XPath, JSONPath позволяет извлекать и фильтрировать данные из структуры JSON.
Использование JSONPath
В этом примере объект JSON представляет инвентаризацию хранилища. Мы создадим таблицу доступных книг магазина, в которой перечислены их названия, авторы и цены.
Переведите книгу в режим правки, выбрав Изменить.
Используйте ссылку Add (Добавить) > Add query (Добавить запрос), чтобы добавить в книгу элемент управления запросом.
Выберите источник данных JSON.
Используйте редактор JSON для ввода следующего фрагмента КОДА JSON:
{ "store": { "books": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 19.95 } } }
Перейдите на вкладку Result Settings (Параметры результатов) и измените формат результатов на JSON Path (Путь JSON).
Примените следующие параметры пути JSON:
Таблица пути JSON:
$.store.books
. Это поле содержит путь к корню таблицы. В этом случае нас интересуют запасы книг в магазине. Путь к таблице фильтрует JSON, чтобы получить сведения о книгах.Идентификатор столбца Пути JSON столбца Заголовок $.title
Автор $.author
Цена, $.price
Идентификаторы столбцов — это заголовки столбцов. Поля путей JSON столбцов указывают путь от корня таблицы к значению столбца.
Снова выберите Выполнение запроса.
Использование регулярных выражений для преобразования значений
Возможно, у вас есть некоторые данные, которые не имеют стандартного формата. Чтобы эффективно использовать эти данные, необходимо преобразовать эти данные в стандартный формат.
В этом примере дата публикации находится в формате YYMMMDD. Код интерпретирует это значение как числовое значение, а не текст, что приводит к правильным числам вместо даты.
Вы можете использовать поля Type, RegEx Match и Replace With в параметрах результатов, чтобы преобразовать результат в истинные даты.
Поле параметра результата | Описание |
---|---|
Тип | Позволяет явно изменить тип значения, возвращаемого API. Это поле обычно остается неустановленным, но это поле можно использовать для принудительного применения значения к другому типу. |
Соответствие регулярного выражения | Позволяет ввести регулярное выражение, чтобы принять участие (или части) значения, возвращаемого API, вместо всего значения. Обычно это поле объединяется с полем "Заменить на ". |
Заменить на | Используйте это поле для создания нового значения вместе с регулярным выражением. Если это значение пусто, по умолчанию используется $& результат сопоставления выражения. См. документацию string.replace, чтобы просмотреть другие значения, которые можно использовать для создания других выходных данных. |
Чтобы преобразовать формат ГГГГМДД в формат ГГГГ-ММ-ДД:
Выберите опубликованную строку в сетке.
В поле "Тип" выберите дату и время, чтобы столбец можно было использовать в диаграммах.
В поле Regex Match используйте это регулярное выражение:
([0-9]{4})([0-9]{2})([0-9]{2})
. Это регулярное выражение:- соответствует четырехзначному номеру, а затем двухзначному номеру, а затем другому числу цифр.
- Круглые скобки групп отслеживания форм, которые будут использоваться на следующем шаге.
В разделе "Заменить с" используйте это регулярное выражение:
$1-$2-$3
Это выражение создает новую строку с каждой захваченной группой с дефисом между ними, превращая "12345678" в "1234-56-78").Повторите запрос.