Boucle DATA et JSON

Salut,

je galère avec une boucle DATA et un json : je cherche à afficher la valeur <rainfall> qui se trouve dans <climatology> (voir contenu du json tout en bas).

Avec la boucle suivante j’arrive à afficher tout le contenu du json

<BOUCLE_api(DATA)
{source json, https://api.meteo-concept.com/api/climatology/day/station?token=XXXX&date=2025-10-24}>        
    <li>[(#CLE)] - [(#VALEUR|print)]</li>
</BOUCLE_api>

En ajoutant le critère {datapath climatology}, j’affiche uniquement le contenu de <climatology> soit

  • rainfall - 2.8
  • rainrate_max - 8.2
  • time - 2025-10-24

Sans critère datapath, [(#VALEUR{rainfall})] affiche 3 résultats, 1 pour <station>, 1 pour <variables> et 1 pour <climatology> (qui est celui qui m’intéresse) :

  • Array
  • 2.8

Donc je me dis qu’avec {datapath climatology}, [(#VALEUR{rainfall})] devrait m’affiche ce que je veux, mais non, j’ai 3 résultats vides.

Et avec {datapath climatology/rainfall} et juste #VALEUR, je n’ai aucun résultat.

Bref, je sèche…

Contenu du json :

<response>
    <station>
        <name>Nom de la station</name>
        <uuid>XXXXXX</uuid>
        <latitude>1.23</latitude>
        <longitude>4.56</longitude>
        <elevation>7</elevation>
        <city/>
    </station>
    <variables>
        <rainfall>
            <name>rainfall</name>
            <longname>Pluviométrie</longname>
            <unit>mm</unit>
            <resolution>0.2</resolution>
        </rainfall>
        <rainrate_max>
            <name>rainrate_max</name>
            <longname>Intensité des précipitations</longname>
            <unit>mm/h</unit>
            <resolution>0.2</resolution>
        </rainrate_max>
    </variables>
    <climatology>
        <rainfall>2.8</rainfall>
        <rainrate_max>8.2</rainrate_max>
        <time>2025-10-24</time>
    </climatology>
</response>

La doc de l’API si besoin : Documentation - API Météo - Meteo Concept

ça ressemble plus à du xml ça …

Effectivement…

Je viens d’essayer avec {source xml ....} mais j’obtiens une erreur :

//api.meteo-concept.com/api/climatology/day/station?token=XXXX&uuid=XXXX&variables=rainfall&date=2025-10-24, xml] 
String could not be parsed as XML

En regardant la doc, je vois que

La sortie de l’API est au format JSON ou XML, en fonction des préférences du User-Agent exprimées par l’entête Accept. Seules les requêtes GET sont acceptées.

Je ne sais pas à quoi ça correspond…

Ça veut dire qu’il faut que tu précises un header Accept (application/json ou application/xml) quand tu te connectes à l’API. C’est un truc qu’on ne peut pas faire avec une boucle DATA dans un squelette, il me semble. À moins de coder un itérateur dédié, je suppose.