====== Extraction de donnée via requêtage JSON (jsonpath) ====== ===== C’est quoi JSONPath ? ===== JSONPath est un outil qui permet de **chercher des informations dans un fichier JSON** (ex: facture électronique). ---- ===== À quoi ça sert ? ===== * Extraire des identifiants (SIREN, TVA, IBAN…) * Lire les montants (HT, TVA, TTC) * Vérifier des règles (présence d’un champ, valeur attendue) ---- ===== Les bases ===== ==== 1. Point de départ ==== $ Début du document ---- ==== 2. Accéder à un champ ==== $['rsm:CrossIndustryInvoice']['rsm:ExchangedDocument']['ram:ID'] ---- ==== 3. Filtrer ==== [?(@.champ == "valeur")] Permet de sélectionner un élément précis dans une liste |récupérer les données du vendeur| "ram:ID": [ { "@schemeID": "0008", "#text": "FRxxxxxxxxxxx" }, { "@schemeID": "0002", "#text": "xxxxxxxxx" }, { "@schemeID": "0009", "#text": "xxxxxxxxxxxxxx" } ] Dans ce cas : * 0008 = TVA * 0002 = SIREN * 0009 = SIRET ---- ==== JSONPath ==== $['rsm:CrossIndustryInvoice'] ['rsm:SupplyChainTradeTransaction'] ['ram:ApplicableHeaderTradeAgreement'] ['ram:SellerTradeParty'] ['ram:ID'][?(@['@schemeID']=='0008')] ['#text'] ---- ==== Traduction métier ==== “Dans la facture :” - Aller dans la facture principale - Aller dans la transaction - Aller dans les infos vendeur - Regarder les identifiants du vendeur - Trouver celui avec **schemeID = TVA (0008)** - Récupérer la valeur ---- ==== Résultat ==== FRxxxxxxxxxxx ---- ===== A retenir ===== ^Élément ^Signification ^ |$ |début de la facture| |[‘champ’]|accéder à un champ | |[*] |tous les éléments | |[0] |premier élément | |[?()] |filtre | |@ |élément courant | ---- ===== Autres Exemples ===== ==== Trouver le nom de la société ==== $['rsm:CrossIndustryInvoice'] ['rsm:SupplyChainTradeTransaction'] ['ram:ApplicableHeaderTradeAgreement'] ['ram:SellerTradeParty'] ['ram:Name'] ---- ==== Trouver un montant TTC ==== $['rsm:CrossIndustryInvoice']['rsm:SpecifiedTradeSettlementHeaderMonetarySummation']['ram:GrandTotalAmount'] ----