API JSON vers XML#

Convertissez un fichier JSON en XML avec une seule requête vers POST /v1/convert/json-to-xml. Les objets JSON deviennent des enfants directs de <root>, les tableaux sont encapsulés dans des éléments <root><item> et les valeurs scalaires dans <root><value>. Par défaut, la réponse contient les octets XML bruts ; définissez direct_download=false pour recevoir à la place des métadonnées JSON avec une URL de téléchargement présignée.


Endpoint#

POST /v1/convert/json-to-xml

Content-Type : multipart/form-data

Entrée acceptée : fichiers .json (encodés en UTF-8)

Format de sortie : .xml (application/xml)


Authentification#

Nécessite soit une clé API privée, soit un jeton JWT issu d'une clé publique.

X-API-Key: sk_your_private_key

Ou :

Authorization: Bearer <jwt_token>

Paramètres de la requête#

Paramètre Type Requis Par défaut Description
file file Oui -- Le fichier .json à convertir. Doit être encodé en UTF-8.
output_filename string Non Nom du fichier d'entrée Nom de fichier de sortie personnalisé. L'extension .xml est ajoutée automatiquement.
direct_download boolean Non true Lorsque true, renvoie les octets XML bruts. Lorsque false, renvoie des métadonnées JSON avec une URL de téléchargement présignée.

Règles de conversion#

  • Un objet JSON {"name": "Alice", "age": 30} devient : xml <root> <name>Alice</name> <age>30</age> </root>

  • Un tableau JSON [{"id": 1}, {"id": 2}] devient : xml <root> <item> <id>1</id> </item> <item> <id>2</id> </item> </root>

  • Une valeur scalaire "hello" devient : xml <root> <value>hello</value> </root>

L'élément racine est toujours <root>. La sortie est formatée avec une indentation d'un seul espace.


Réponse#

Téléchargement direct (direct_download=true, par défaut)#

HTTP 200 OK
Content-Type: application/xml
Content-Disposition: inline; filename="data_20260405_123456789.xml"

Renvoie les octets XML bruts.

Réponse avec métadonnées (direct_download=false)#

{
    "presigned_url": "https://spaces.example.com/...",
    "object_key": "env/files/{project_id}/json-to-xml/data_20260405_123456789.xml",
    "filename": "data_20260405_123456789.xml",
    "file_size": 1234,
    "conversion_time_seconds": 0.05
}

Exemples de code#

Python#

import requests

with open("data.json", "rb") as f:
    response = requests.post(
        "https://api.enconvert.com/v1/convert/json-to-xml",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("data.json", f, "application/json")}
    )

with open("data.xml", "wb") as out:
    out.write(response.content)

Node.js#

const form = new FormData();
form.append("file", fs.createReadStream("data.json"));

const response = await fetch("https://api.enconvert.com/v1/convert/json-to-xml", {
    method: "POST",
    headers: { "X-API-Key": "sk_your_private_key" },
    body: form
});

const xml = await response.text();

PHP#

$ch = curl_init("https://api.enconvert.com/v1/convert/json-to-xml");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["X-API-Key: sk_your_private_key"],
    CURLOPT_POSTFIELDS => ["file" => new CURLFile("data.json", "application/json")]
]);
$xml = curl_exec($ch);
curl_close($ch);
file_put_contents("data.xml", $xml);

Go#

body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "data.json")
file, _ := os.Open("data.json")
io.Copy(part, file)
writer.Close()

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/json-to-xml", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", "sk_your_private_key")
resp, _ := http.DefaultClient.Do(req)

Réponses d'erreur#

Statut Condition
400 Bad Request Le fichier n'est pas un fichier .json
400 Bad Request Contenu JSON invalide
400 Bad Request Échec de la conversion JSON vers XML
401 Unauthorized Clé API / jeton JWT manquant ou invalide
402 Payment Required Quota mensuel d'ops épuisé
402 Payment Required Limite de stockage atteinte
413 Payload Too Large Le fichier dépasse la taille maximale du forfait

Limites#

Limite Valeur
Taille de fichier max Dépend du forfait (Founding : 5 MB)
Encodage d'entrée UTF-8 uniquement
Conversions mensuelles Dépend du forfait

Questions fréquentes#

Comment convertir du JSON en XML avec une API REST ?#

Envoyez une requête POST multipart/form-data à /v1/convert/json-to-xml avec votre fichier .json dans le champ file et authentifiez-vous avec un en-tête X-API-Key ou un jeton JWT Authorization: Bearer. La réponse est le XML converti.

Comment les tableaux JSON sont-ils convertis en XML ?#

Chaque élément du tableau est encapsulé dans un élément <item> sous l'élément <root>, donc [{"id": 1}, {"id": 2}] devient <root><item><id>1</id></item><item><id>2</id></item></root>. L'élément racine est toujours <root>.

Puis-je obtenir une URL de téléchargement au lieu des octets XML bruts ?#

Oui. Définissez direct_download=false pour recevoir une réponse JSON de métadonnées contenant presigned_url, object_key, filename, file_size et conversion_time_seconds au lieu du XML brut.

Pourquoi l'API JSON vers XML renvoie-t-elle 400 Bad Request ?#

Un 400 est renvoyé lorsque le fichier envoyé n'est pas un fichier .json, que le contenu n'est pas du JSON valide ou que la conversion elle-même échoue. Les fichiers dépassant la taille maximale de votre forfait renvoient 413 Payload Too Large à la place.