Поделиться через


Использование JSONPath для преобразования данных JSON в книгах

Книги могут запрашивать данные из многих источников. Некоторые конечные точки, такие как Azure Resource Manager или пользовательские конечные точки, могут возвращать результаты в формате JSON. Если данные JSON, возвращаемые запрашиваемой конечной точкой, в формате, который не требуется, можно использовать преобразование JSONPath для преобразования JSON в структуру таблицы. Затем можно использовать таблицу для построения визуализаций книги.

JSONPath — это язык запросов для JSON, аналогичный XPath для XML. Как и XPath, JSONPath позволяет извлекать и фильтрировать данные из структуры JSON.

Использование JSONPath

В этом примере объект JSON представляет инвентаризацию хранилища. Мы создадим таблицу доступных книг магазина, в которой перечислены их названия, авторы и цены.

  1. Переведите книгу в режим правки, выбрав Изменить.

  2. Используйте ссылку Add (Добавить) >Add query (Добавить запрос), чтобы добавить в книгу элемент управления запросом.

  3. Выберите источник данных JSON.

  4. Используйте редактор 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
        }
      }
    }
    
  5. Перейдите на вкладку Result Settings (Параметры результатов) и измените формат результатов на JSON Path (Путь JSON).

  6. Примените следующие параметры пути JSON:

    • Таблица пути JSON: $.store.books. Это поле содержит путь к корню таблицы. В этом случае нас интересуют запасы книг в магазине. Путь к таблице фильтрует JSON, чтобы получить сведения о книгах.

      Идентификатор столбца Пути JSON столбца
      Заголовок $.title
      Автор $.author
      Цена, $.price

    Идентификаторы столбцов — это заголовки столбцов. Поля путей JSON столбцов указывают путь от корня таблицы к значению столбца.

  7. Снова выберите Выполнение запроса.

    Screenshot that shows editing a query item with JSON data source and JSON path result format.

Использование регулярных выражений для преобразования значений

Возможно, у вас есть некоторые данные, которые не имеют стандартного формата. Чтобы эффективно использовать эти данные, необходимо преобразовать эти данные в стандартный формат.

В этом примере дата публикации находится в формате YYMMMDD. Код интерпретирует это значение как числовое значение, а не текст, что приводит к правильным числам вместо даты.

Вы можете использовать поля Type, RegEx Match и Replace With в параметрах результатов, чтобы преобразовать результат в истинные даты.

Поле параметра результата Описание
Тип Позволяет явно изменить тип значения, возвращаемого API. Это поле обычно остается неустановленным, но это поле можно использовать для принудительного применения значения к другому типу.
Соответствие регулярного выражения Позволяет ввести регулярное выражение, чтобы принять участие (или части) значения, возвращаемого API, вместо всего значения. Обычно это поле объединяется с полем "Заменить на ".
Заменить на Используйте это поле для создания нового значения вместе с регулярным выражением. Если это значение пусто, по умолчанию используется $&результат сопоставления выражения. См. документацию string.replace, чтобы просмотреть другие значения, которые можно использовать для создания других выходных данных.

Чтобы преобразовать формат ГГГГМДД в формат ГГГГ-ММ-ДД:

  1. Выберите опубликованную строку в сетке.

  2. В поле "Тип" выберите дату и время, чтобы столбец можно было использовать в диаграммах.

  3. В поле Regex Match используйте это регулярное выражение: ([0-9]{4})([0-9]{2})([0-9]{2}). Это регулярное выражение:

    • соответствует четырехзначному номеру, а затем двухзначному номеру, а затем другому числу цифр.
    • Круглые скобки групп отслеживания форм, которые будут использоваться на следующем шаге.
  4. В разделе "Заменить с" используйте это регулярное выражение: $1-$2-$3 Это выражение создает новую строку с каждой захваченной группой с дефисом между ними, превращая "12345678" в "1234-56-78").

  5. Повторите запрос.

    Screenshot that shows JSONpath converted to date-time format.

Следующие шаги