avpath - Emplacement
-
Les sous-étapes commencent par un point ou deux points :
Syntaxe
Emplacement
.property
localise la propriété immédiatement sous les éléments de contexte
.property
localise la propriété loin sous les éléments de contexte
.
localise les éléments de contexte eux-mêmes
-
Vous pouvez utiliser le symbole de métacaractère au lieu du nom exact de la propriété :
Syntaxe
Emplacement
.*
localise toutes les propriétés descendant immédiatement des éléments de contexte
..*
localise toutes les propriétés descendant en profondeur des éléments de contexte
- avpath vous permet de joindre plusieurs propriétés :
Syntaxe
Emplacement
(.property1 | .property2 | .propertyN)
localise property1, property2, propertyN immédiatement sous les éléments de contexte
(.property1 | .property2.property2_1.property2_1_1)
localise les éléments .property1, .property2.property2_1.property2_1_1
Votre emplacement peut être absolu ou relatif. Si l’emplacement commence par la racine (^), vous utilisez un emplacement absolu — votre emplacement commence par les éléments racine.
Exemple de données Avro (un enregistrement Avro contenant une liste de sous-enregistrements clients - customers) :
var doc =
"""
{
"customers" : [
{
"id": "1",
"Firstname": "Quentin",
"Lastname": "Novo",
"Address": { "Street" : "South Roosevelt Drive" },
"RegistrationDate": "20/01/2015",
"Revenue": "55239",
"States": "AZ"
},
{
"id": "2",
"Firstname": "Kip",
"Lastname": "Von Celaeno",
"Address": { "Street" : "Carpinteria Avenue" },
"RegistrationDate": "19/05/2016",
"Revenue": "78148",
"States": "NC"
},
{
"id": "3",
"Firstname": "Beau",
"Lastname": "Dash",
"Address": { "Street" : "Corona Del Mar" },
"RegistrationDate": "28/09/2009",
"Revenue": "77912",
"States": "CT"
}
]
};
"""
Exemple d’emplacement :
// find all customers addresses
avpath.select(doc, ".customers.Address")
// [{ Street : 'South Roosevelt Drive' }, { Street : 'Carpinteria Avenue' }, { Street : 'Corona Del Mar' }]
// find all customers address streets
avpath.select(doc, ".customers.Address.Street")
// ['South Roosevelt Drive', 'Carpinteria Avenue', 'Corona Del Mar' ]
// find all streets in customers*
avpath.select(doc, ".customers..Street")
// ['South Roosevelt Drive', 'Carpinteria Avenue', 'Corona Del Mar' ]