Chuyển đổi XML ↔ JSON 🔒 Dữ liệu của bạn không rời khỏi trình duyệt.
Chuyển đổi XML sang JSON và ngược lại, ngay trong trình duyệt.
Thuộc tính thành @key · thẻ lặp lại thành mảng
Ctrl+STải xuống
Về công cụ này
XML xuất hiện trong các API SOAP, feed RSS/Atom, layout Android, và vô số hệ thống doanh nghiệp cũ, trong khi JSON là lựa chọn mặc định hiện đại. Công cụ này nối hai bên: thuộc tính trở thành key @name, node văn bản đi kèm thuộc tính trở thành #text, và bất kỳ thẻ nào lặp lại dưới cùng một cha trở thành mảng JSON — đúng quy ước mà các thư viện chuyển XML sang JSON phổ biến sử dụng, nên kết quả trông quen thuộc.
Việc chuyển đổi chạy qua DOMParser có sẵn của trình duyệt — không có thư viện XML nào được tải về, và không dữ liệu nào được tải lên bất cứ đâu. Theo chiều ngược lại, các key JSON bắt đầu bằng @ trở thành thuộc tính và mảng trở thành các thẻ anh em lặp lại, nên một vòng chuyển đổi cẩn thận sẽ giữ nguyên cấu trúc của bạn.
Câu hỏi thường gặp
Tiền tố @ và mảng trong JSON đã chuyển đổi thực sự có ý nghĩa gì?
Thuộc tính XML được chuyển thành key JSON có tiền tố @ (vậy `<item id="1">` trở thành `{"@id": "1"}`), và bất kỳ thẻ nào lặp lại dưới cùng một cha sẽ trở thành mảng JSON thay vì bị ghi đè — đó là cách `<item>Milk</item><item>Eggs</item>` trở thành `["Milk", "Eggs"]`.
Công cụ này có hiểu namespace XML, phần CDATA, chú thích hay processing instruction không?
Chỉ hiểu một phần. Thẻ có namespace giữ nguyên tiền tố thô (ví dụ `ns:tag`) thay vì phân giải URI của namespace, nội dung CDATA được đọc như văn bản thuần, và chú thích/processing instruction bị loại bỏ hoàn toàn. Đây là công cụ chuyển đổi thực dụng cho các file cấu hình và dữ liệu thông thường, không phải một cài đặt đầy đủ theo đặc tả XML — tránh dùng nó với XML phụ thuộc vào namespace hay DTD để đảm bảo tính đúng đắn.
Nếu tôi chuyển XML sang JSON rồi lại chuyển về XML, tôi có nhận được đúng tài liệu ban đầu không?
Rất gần, nhưng không giống nhau từng byte. Thứ tự và giá trị của phần tử, thuộc tính được giữ đúng qua vòng chuyển đổi, nhưng chú thích gốc, cách bọc CDATA, kiểu thẻ tự đóng, và khoảng trắng chính xác giữa các thẻ không được giữ lại — kết quả tương đương về mặt ngữ nghĩa, không phải bản sao giống hệt.
XML hay JSON của tôi có bị tải lên đâu đó khi tôi dùng công cụ này không?
Không. Việc phân tích dùng DOMParser gốc của trình duyệt và JSON.parse — cả hai đều chạy hoàn toàn trên thiết bị của bạn. Không có gì bạn dán hay thả vào đây được gửi đến máy chủ.
Làm sao để biến một mảng JSON trở lại thành các thẻ XML lặp lại?
Cho object cha của mảng một key có giá trị là mảng JSON — ví dụ `{"item": ["Milk", "Eggs"]}` — rồi chuyển sang chế độ JSON → XML sẽ tạo ra một phần tử `<item>` cho mỗi mục trong mảng. Dùng ô "Tên phần tử gốc" nếu cấp cao nhất của JSON là một mảng hoặc có nhiều hơn một key, vì XML cần một thẻ gốc duy nhất.