JSON en XML
Cet outil produit un document XML à partir d’un JSON. Les clés deviennent des balises, les valeurs leur contenu, les tableaux une suite de balises répétées. Pratique quand vous travaillez en JSON mais devez dialoguer avec un système plus ancien, un logiciel comptable ou une administration qui n’accepte, en entrée, qu’un fichier au format XML.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
De la clé à la balise
Chaque clé de votre JSON donne le nom d’une balise, et sa valeur en devient le contenu. Un objet imbriqué se traduit par des balises imbriquées, ce qui reproduit fidèlement la hiérarchie de départ. Le document obtenu est indenté et lisible, prêt à être relu ou déposé dans le système destinataire, sans que vous ayez à écrire la moindre balise à la main.
Tableaux et éléments répétés
Un tableau JSON n’a pas d’équivalent direct en XML : il se traduit par une balise répétée autant de fois qu’il y a d’éléments. C’est la convention attendue par la plupart des systèmes qui consomment du XML. Selon les exigences du destinataire, il peut être utile de choisir des noms de clés au singulier pour que les balises répétées se lisent naturellement dans le document final.
Un document propre et local
La génération se fait entièrement dans votre navigateur, sur cette page : le JSON n’est pas transmis à un serveur. Vous récupérez un XML correctement échappé, où les caractères spéciaux comme l’esperluette ou les chevrons sont traités pour rester valides. Rien n’est conservé après la fermeture de l’onglet, ce qui convient aux échanges contenant des données sensibles.
Cas d’usage
Alimenter un système hérité
Menuiserie Rousseau & Fils doit transmettre ses commandes à une plateforme partenaire qui n’ingère que du XML, alors que son application interne raisonne en JSON.
Préparer un échange normalisé
Nadia Benali convertit un JSON en XML pour respecter le format d’import imposé par un logiciel comptable, sans passer par un développement dédié.
Générer un fichier de configuration
Thomas Rousseau produit un fichier XML de paramétrage à partir d’un JSON de travail, plus commode à éditer au quotidien.
Questions fréquentes
Comment un tableau JSON est-il transcrit ?
Chaque élément du tableau devient une occurrence d’une même balise. C’est la façon habituelle de représenter une liste en XML.
Les caractères spéciaux sont-ils correctement échappés ?
Oui. Les esperluettes, chevrons et guillemets sont échappés pour que le document XML reste valide.
Le JSON est-il envoyé sur vos serveurs ?
Non, la conversion est réalisée localement dans le navigateur ; aucune donnée n’en sort.
Est-ce payant ?
Non, l’usage dans le navigateur est gratuit et illimité. Seul l’appel programmable, à $0.002 la requête, sert à automatiser.
Puis-je influencer le nom des balises ?
Oui, indirectement : ce sont les noms de clés de votre JSON qui deviennent les balises. Des clés bien nommées donnent un XML lisible.
Quelle taille maximale est acceptée ?
25 Mo par fichier.
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/json-to-xml \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/json-to-xml", {
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/json-to-xml",
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/json-to-xml", 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/json-to-xml", 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.json_to_xml",
"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. |