Chuyển XML sang JSON online
Chuyển XML sang JSON và ngược lại, kiểm tra XML hợp lệ kèm dòng và cột lỗi, định dạng đẹp hoặc nén XML, chuyển TOML, INI sang JSON và ngược lại.
Kết quả
Bấm “Chạy” để xem kết quả.
Gửi tài liệu trong xml, json, toml hoặc ini (hoặc gửi body thô kèm from) và chọn to: json, xml, toml, ini, validate, pretty hoặc minify. Khi chuyển XML sang JSON, thuộc tính được giữ với tiền tố (mặc định @_, dùng attribute_prefix=none để bỏ), phần chữ lẫn trong thẻ nằm ở #text; có thể ép mảng cho thẻ lặp lại (array_tags=item,line hoặc always_array=true), giữ đúng thứ tự thẻ (preserve_order=true), bỏ tiền tố namespace (remove_ns=true), giữ CDATA hoặc chú thích. Giá trị mặc định giữ nguyên là chuỗi, trừ khi đặt parse_values=true, nên mã số thuế, số hoá đơn như 0101234567 không bị mất số 0 ở đầu.
Khi chuyển JSON sang XML, khoá bắt đầu bằng tiền tố trở thành thuộc tính, mảng thành các thẻ lặp lại, kết quả được bọc trong root khi cần; XML tạo ra được kiểm tra lại và có cảnh báo nếu tên khoá không hợp lệ làm tên thẻ. validate báo lỗi đầu tiên kèm dòng và cột, cùng thẻ gốc, namespace và số phần tử; pretty / minify thụt lề lại hoặc nén XML (hay JSON), vẫn giữ chú thích, CDATA và chỉ thị xử lý.
An toàn: việc mở rộng entity bị giới hạn (chống "billion laughs"), không bao giờ tải entity bên ngoài (SYSTEM / PUBLIC), độ sâu tối đa 256 cấp và tài liệu tối đa 5 MB. TOML hỗ trợ chuẩn 1.0 trừ số nguyên độ chính xác tuỳ ý (ngày giờ trả về dạng chuỗi, inf / nan cũng là chuỗi); INI hỗ trợ section, chú thích ; / #, giá trị trong ngoặc kép, mảng key[] và section phân cấp bằng dấu chấm (tuỳ chọn).
Dùng trong code của bạn
curl -X POST "https://apibox.io.vn/v1/xml-convert" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"xml":"<invoice id=\"HD001\"><buyer>Công ty A</buyer><item><name>Pen</name><qty>2</qty></item><item><name>Book</name><qty>1</qty></item></invoice>"}'const res = await fetch('https://apibox.io.vn/v1/xml-convert', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"xml": "<invoice id=\"HD001\"><buyer>Công ty A</buyer><item><name>Pen</name><qty>2</qty></item><item><name>Book</name><qty>1</qty></item></invoice>"
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/xml-convert",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"xml": "<invoice id=\"HD001\"><buyer>Công ty A</buyer><item><name>Pen</name><qty>2</qty></item><item><name>Book</name><qty>1</qty></item></invoice>"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/xml-convert');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"xml":"<invoice id=\\"HD001\\"><buyer>Công ty A</buyer><item><name>Pen</name><qty>2</qty></item><item><name>Book</name><qty>1</qty></item></invoice>"}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Tài liệu API → Nhận API key miễn phí
Hỏi đáp
Vì sao số được trả về dạng chuỗi?
XML không có kiểu dữ liệu, và các mã như 0101234567 phải giữ số 0 ở đầu. Thêm parse_values=true để nhận số và boolean.
Làm sao để thẻ lặp lại luôn là mảng?
Liệt kê tên thẻ trong array_tags (ví dụ array_tags=HHDVu), hoặc dùng always_array=true cho mọi thẻ dưới thẻ gốc.
Xử lý DOCTYPE / entity có an toàn không?
Có: entity nội bộ chỉ được mở rộng trong giới hạn nhỏ, phần lồng nhau vượt giới hạn giữ nguyên dạng chữ, entity bên ngoài bị từ chối.