====== 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']
----