XML en JSON
Cet outil convertit un document XML — un flux, une configuration ou un export métier — en JSON, plus léger à manipuler dans un script. Les balises deviennent des clés, les attributs et les répétitions sont conservés. Utile dès qu’une source ne parle que XML alors que votre code attend du JSON.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Balises, attributs et texte
Une balise XML porte à la fois un contenu, d’éventuels attributs et parfois des balises enfants. L’outil restitue tout cela : les attributs sont regroupés distinctement du texte, de sorte que rien ne se perd dans la conversion. Vous retrouvez une structure JSON fidèle à l’original, où l’on distingue nettement la valeur d’un élément de ses attributs, sans mélange trompeur des deux.
Balises répétées et tableaux
Quand une même balise apparaît plusieurs fois au même niveau — une liste d’articles, de lignes ou de contacts — l’outil la traduit en tableau JSON, ce qui est le comportement attendu. Une balise unique reste une valeur simple. Ce point mérite attention : selon les documents, une même structure peut apparaître une ou plusieurs fois, et le résultat s’adapte à ce qu’il rencontre réellement.
Une conversion locale
Tout se déroule dans votre navigateur, sur cette page. Le document XML n’est pas envoyé sur un serveur : il est analysé et converti sur votre machine. C’est rassurant quand le fichier contient un export bancaire, un flux de commandes ou des données nominatives, puisque aucune information ne circule et rien n’est conservé après la fermeture de l’onglet.
Cas d’usage
Exploiter un flux fournisseur
Studio Lumen SAS reçoit un flux produits en XML et veut le consommer dans une application qui ne lit que du JSON. La conversion supprime une étape d’intégration fastidieuse.
Lire un export en XML
Camille Moreau récupère un export au format XML d’un ancien logiciel de gestion et le convertit en JSON pour l’analyser tranquillement dans un script.
Déboguer une intégration
Thomas Rousseau compare la structure d’un XML reçu à ce que son code attend ; en JSON, l’arborescence devient bien plus lisible.
Questions fréquentes
Comment les attributs XML sont-ils rendus ?
Ils sont conservés et distingués du contenu textuel de la balise, pour qu’on ne confonde pas la valeur d’un élément avec ses attributs.
Une balise présente plusieurs fois devient-elle un tableau ?
Oui. Les répétitions au même niveau sont traduites en tableau JSON, alors qu’une balise unique reste une valeur simple.
Le fichier est-il envoyé sur un serveur ?
Non. L’analyse et la conversion ont lieu localement, dans votre navigateur ; rien n’est transmis.
L’outil est-il gratuit ?
Oui, sans limite d’usage dans le navigateur. Un appel programmable existe pour automatiser, à $0.002 la requête.
Les espaces de noms sont-ils gérés ?
Les préfixes d’espaces de noms sont conservés dans les clés produites, afin que la structure d’origine reste identifiable.
Y a-t-il une limite de taille ?
Oui, 25 Mo par document.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/data/xml-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/xml-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/xml-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/xml-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/xml-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"input": "…"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.xml_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |