Expresiones XQuery para JSON
Expresiones XQuery 3.1 para JSON
Las estructuras de datos JSON suelen usar objetos y matrices y usan el operador de búsqueda XQuery 3.1 ?, que se usa para ubicar nodos dentro de objetos (que básicamente son asignaciones desde la perspectiva de XQuery) y matrices JSON. Esta forma de ubicar nodos es distinta a la que usa expresiones de ruta de acceso para ubicar nodos en documentos XML. Es este caso, el operador barra / se usa para conectar pasos en una expresión de ruta de acceso (por ejemplo: items/*). En las expresiones XQuery para JSON, el operador barra no se usa para ubicar nodos.
Ejemplos de expresiones XQuery para JSON
?items?*
Significa: buscar el nodo secundario items y después buscar todos sus nodos secundarios. Observe que se espera que items sea un nodo secundario del nodo de contexto.
?Artists?1?Albums?2?Name
Significa: buscar el nodo secundario Artists y después buscar su primer nodo secundario. Dentro de ese nodo, buscar el nodo secundario Albums y después buscar el segundo nodo secundario de este. Devolver el nodo Name de ese segundo nodo secundario.
?Tracks?*[contains(?Writer, 'Brian')]
Significa: buscar el nodo secundario Tracks y después buscar todos sus secundarios. Mientras se buscan los secundarios, buscar los nodos secundarios de cada secundario Writer y seleccionar solamente los que contengan la cadena de texto 'Brian'. Observe que en esta expresión hay tres operadores de búsqueda. Cada uno se usa en un paso nuevo en el que se busca en un conjunto de nodos.
?Artists?*[?Name="Queen"]?Albums?*?Name
Significa: dentro del objeto raíz, buscar el nodo secundario Artists y después buscar todos sus secundarios cuyo nodo Name tiene el valor "Queen". Dentro de estos nodos, buscar todos los nodos secundarios Album y sus secundarios. Dentro de esos secundarios, buscar (y devolver) los respectivos nodos Name.En la imagen siguiente esta expresión se muestra en la ventana XPath/XQuery junto con la representación de la vista Cuadrícula JSON del documento JSON de destino.