Expressions XQuery pour JSON
Expressions XQuery 3.1 pour JSON
Étant donné que les structures de données JSON utilisent couramment des objets et des tableaux, c'est l'opérateur de recherche XQuery 3.1 ? qui est utilisé pour localiser les nœuds dans les objets JSON (qui sont essentiellement des mappages du point de vue XQuery) et les tableaux JSON. Cette méthode de localisation d'un nœud diffère de la manière dont les expressions de chemin sont écrites pour localiser les nœuds dans les documents XML. Dans ces derniers, l'opérateur barre / est utilisé pour relier les étapes dans une expression de chemin (par exemple : items/*). Dans les expressions XQuery pour JSON, l'opérateur barre n'est pas utilisé pour localiser les nœuds.
Exemples d'expressions XQuery pour JSON
?items?*
Interpréter comme suit : Rechercher le nœud enfant items, puis rechercher tous ses nœuds enfants. Notez que items est censé être un nœud enfant du nœud contextuel.
?Artists?1?Albums?2?Name
Interpréter comme suit : Rechercher le nœud enfant Artists, puis rechercher son premier nœud enfant. À l'intérieur de ce nœud, rechercher le nœud enfant Albums, puis rechercher son deuxième nœud enfant. Renvoyez maintenant le nœud Nom de ce deuxième nœud enfant.
?Tracks?*[contains(?Writer, 'Brian')]
Interpréter comme suit : Recherchez le nœud enfant Tracks, puis recherchez tous ses enfants. Lors de la recherche des enfants, recherchez les enfants du nœud Writer de chaque enfant et sélectionnez uniquement ceux qui contiennent la chaîne 'Brian'. Notez qu'il y a trois opérateurs de recherche dans cette expression. Chacun est utilisé dans une nouvelle étape, où un ensemble de nœuds doit être recherché.
?Artists?*[?Name="Queen"]?Albums?*?Name
Interpréter comme suit : À l'intérieur de l'objet racine, recherchez le nœud enfant Artists, puis recherchez tous ses enfants qui ont un nœud Name avec une valeur "Queen". À l'intérieur de ces nœuds, recherchez tous les nœuds enfants Albums, puis leurs enfants. À l'intérieur de ces enfants, recherchez (et renvoyez) les nœuds Name respectifs. Dans la capture d'écran ci-dessous, cette expression est affichée dans la fenêtre XPath/XQuery avec la représentation Mode grille JSON du document JSON cible.
