Uso de JSONPath para transformar datos JSON en libros

Los libros pueden consultar datos de muchos orígenes. Algunos puntos de conexión, como Azure Resource Manager o un punto de conexión personalizado, pueden devolver los resultados en formato JSON. Si los datos en formato JSON devueltos por el punto de conexión consultado están en un formato que no le interesa, puede usar la transformación JSONPath para convertir el formato JSON en una estructura de tabla. A continuación, puede usar la tabla para trazar visualizaciones de libros.

JSONPath es un lenguaje de consulta para JSON similar a XPath para XML. Al igual que XPath, JSONPath permite la extracción y el filtrado de datos a partir de una estructura JSON.

Uso de JSONPath

En este ejemplo, el objeto JSON representa el inventario de un almacén. Crearemos una tabla de los libros disponibles en el almacén mediante una lista de los títulos, autores y precios.

  1. Cambie el libro al modo de edición seleccionando Editar.

  2. Use el vínculo Agregar>Agregar consulta para agregar un control de consulta al libro.

  3. Seleccione el origen de datos como JSON.

  4. Use el editor de JSON para introducir el siguiente fragmento de código 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. Seleccione la pestaña Configuración del resultado y cambie el formato del resultado a Ruta de acceso JSON.

  6. Aplique la configuración siguiente de ruta de acceso JSON:

    • Tabla de rutas de acceso JSON: $.store.books. Este campo representa la ruta de acceso de la raíz de la tabla. En este caso, nos interesa el inventario de libros de la tienda. La ruta de acceso de la tabla filtra el archivo JSON para obtener la información de los libros.

      Id. de columna Rutas de acceso JSON de la columna
      Título $.title
      Autor $.author
      Price $.price

    Los id. de columna serán los encabezados de las columnas. Los campos de rutas de acceso JSON de columna representan la ruta de acceso de la raíz de la tabla al valor de la columna.

  7. Seleccione Ejecutar consulta.

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

Uso de expresiones regulares para convertir valores

Es posible que tenga algunos datos que no estén en un formato estándar. Para usar esos datos de forma eficaz, le interesará convertir esos datos a un formato estándar.

En este ejemplo, la fecha de publicación está en formato AAAAMMDD. El código interpreta este valor como un valor numérico, no texto, lo que da lugar a números justificados a la derecha, en lugar de una fecha.

Puede usar los campos Tipo, Coincidencia de regex y Reemplazar por en la configuración de resultados para convertir el resultado en fechas reales.

Campo de configuración de resultados Descripción
Tipo Permite cambiar explícitamente el tipo del valor devuelto por la API. Este campo suele dejarse sin definir, pero puede usar este campo para forzar el valor a otro tipo.
Coincidencia de regex Permite escribir una expresión regular para tomar una parte (o partes) del valor devuelto por la API en lugar del valor entero. Este campo se combina normalmente con el campo Reemplazar por.
Reemplazar por Use este campo para crear el nuevo valor junto con la expresión regular. Si este valor está vacío, el valor predeterminado es $&, que es el resultado coincidente de la expresión. Consulte la documentación de string.replace para ver otros valores que puede usar para generar otro resultado.

Para convertir el formato AAAAMMDD a formato AAAA-MM-DD:

  1. Seleccione la fila Fecha de publicación en la cuadrícula.

  2. En el campo Tipo, seleccione Fecha y hora para que la columna se pueda usar en gráficos.

  3. En el campo Coincidencia de regex, use esta expresión regular: ([0-9]{4})([0-9]{2})([0-9]{2}). Esta expresión regular:

    • Coincide con un número de cuatro dígitos, un número de dos dígitos y otro número de dos dígitos.
    • Los paréntesis forman grupos de captura que se usarán en el paso siguiente.
  4. En Reemplazar por, use esta expresión regular: $1-$2-$3. Esta expresión crea una nueva cadena con cada grupo capturado, con un guion entre ellos, lo que convierte "12345678" en "1234-56-78").

  5. Ejecute de nuevo la consulta.

    Screenshot that shows JSONpath converted to date-time format.

Pasos siguientes