Chuyển Đổi XML-JSON
Chuyển XML sang JSON và JSON sang XML trực tuyến, ngay trên trình duyệt, không tải lên. Giữ nguyên thuộc tính, CDATA, số 0 đầu và cấu trúc lồng nhau.
Giới Thiệu Công Cụ Chuyển Đổi XML-JSON
Chuyển Đổi XML-JSON là công cụ trực tuyến miễn phí chuyển đổi giữa định dạng XML (eXtensible Markup Language) và JSON (JavaScript Object Notation). Chuyển XML sang JSON hoặc JSON sang XML với hỗ trợ thuộc tính, cấu trúc lồng nhau và định dạng tùy chỉnh—tất cả được xử lý cục bộ trong trình duyệt để đảm bảo quyền riêng tư hoàn toàn.
Tại sao cần chuyển đổi giữa XML và JSON?
XML và JSON đều là định dạng trao đổi dữ liệu phổ biến, nhưng được sử dụng trong các ngữ cảnh khác nhau:
- XML: Phổ biến trong hệ thống cũ, API SOAP, tệp cấu hình và ứng dụng doanh nghiệp
- JSON: Tiêu chuẩn cho API REST hiện đại, ứng dụng web và cơ sở dữ liệu NoSQL
Chuyển đổi giữa các định dạng cho phép bạn:
- Tích hợp hệ thống XML cũ với API JSON hiện đại
- Xử lý dữ liệu XML trong ứng dụng JavaScript
- Chuyển đổi dữ liệu JSON cho hệ thống dựa trên XML
- Di chuyển dữ liệu giữa các nền tảng khác nhau
Thuộc tính XML được xử lý như thế nào?
Thuộc tính XML được chuyển đổi thành thuộc tính JSON với tiền tố đặc biệt:
- Bật (mặc định): Thuộc tính trở thành thuộc tính với tiền tố '@_'
Ví dụ: <sach id="1"> trở thành {"@_id": "1"}
- Tắt: Thuộc tính bị bỏ qua trong quá trình chuyển đổi
Khi chuyển JSON sang XML, các thuộc tính có tiền tố '@_' sẽ tự động được chuyển đổi trở lại thành thuộc tính XML, giữ nguyên cấu trúc ban đầu.
Dữ liệu của tôi có rời khỏi thiết bị không?
Không. Tất cả việc chuyển đổi XML-JSON diễn ra hoàn toàn trong trình duyệt của bạn bằng JavaScript. Dữ liệu của bạn không bao giờ rời khỏi máy, đảm bảo quyền riêng tư hoàn toàn cho thông tin nhạy cảm như tệp cấu hình, phản hồi API hoặc cấu trúc dữ liệu bảo mật.
'Phân Tích Giá Trị Thẻ' là gì?
Tùy chọn này tự động chuyển đổi nội dung văn bản XML sang các kiểu dữ liệu phù hợp trong JSON:
- Bật (mặc định): Chuyển đổi số, boolean và giá trị null
Ví dụ: <tuoi>30</tuoi> trở thành {"tuoi": 30} (số, không phải chuỗi)
- Tắt: Tất cả giá trị vẫn là chuỗi
Ví dụ: <tuoi>30</tuoi> trở thành {"tuoi": "30"} (chuỗi)
Điều này hữu ích khi bạn muốn giữ nguyên các kiểu dữ liệu chính xác để sử dụng trong lập trình.

Tôi có thể tùy chỉnh định dạng đầu ra XML không?
Có. Khi chuyển JSON sang XML, bạn có thể:
1. Đặt tên phần tử gốc tùy chỉnh (mặc định: 'root')
2. Bật/tắt định dạng XML (in đẹp)
3. Chọn kích thước thụt lề (2 hoặc 4 khoảng trắng)
Công cụ tự động thêm khai báo XML (<?xml version="1.0"?>) và định dạng đúng các cấu trúc lồng nhau để dễ đọc.
Mảng JSON được xử lý như thế nào trong XML?
Mảng JSON được chuyển đổi thành các phần tử XML lặp lại với cùng tên thẻ:
JSON: {"sach": [{"tieude": "Sách 1"}, {"tieude": "Sách 2"}]}
XML:
<sach>
<tieude>Sách 1</tieude>
<tieude>Sách 2</tieude>
</sach>
Đây là cách biểu diễn XML tiêu chuẩn của danh sách, thường được sử dụng trong nguồn cấp RSS, phản hồi SOAP và tệp cấu hình.
Các phần CDATA và chú thích XML được xử lý như thế nào?
Hãy bật tùy chọn 'Giữ CDATA và Chú Thích' (mặc định) để chuyển đổi hai chiều không mất dữ liệu. Các phần CDATA được lưu dưới khóa '#cdata' và chú thích XML dưới khóa '#comment', sau đó được dựng lại thành <![CDATA[...]]> và <!-- ... --> khi chuyển ngược về XML. Điều này quan trọng khi XML của bạn bọc HTML, script hoặc đánh dấu được thoát bên trong CDATA: nếu không có tùy chọn này, những nội dung đó cùng các chú thích sẽ bị loại bỏ trong âm thầm. Chỉ tắt tùy chọn này nếu bạn muốn JSON gọn hơn và không cần giữ chúng.
Lưu ý: công cụ này sử dụng thư viện fast-xml-parser, một tiêu chuẩn được dùng rộng rãi cho việc chuyển đổi XML/JSON trên Node.js và trình duyệt.
Vì sao mã bưu chính 01234 của tôi biến thành 1234 và làm sao giữ số 0 ở đầu?
Khi bật 'Phân Tích Giá Trị Thẻ', fast-xml-parser cố gắng ép văn bản trông giống số thành số thực, làm mất các số 0 ở đầu và có thể làm hỏng mã bưu chính, số tài khoản, mã SKU và số điện thoại. Hãy bật tùy chọn 'Giữ Số 0 Ở Đầu' (mặc định): nó đặt leadingZeros:false để bất kỳ giá trị nào bắt đầu bằng số 0 — như <zip>01234</zip> — vẫn là chuỗi "01234". Điều này thiết yếu cho dữ liệu xuất từ ERP, phản hồi API SOAP và tệp cấu hình nơi văn bản chính xác là quan trọng. Nếu bạn muốn giữ mọi giá trị dưới dạng chuỗi, hãy tắt hẳn 'Phân Tích Giá Trị Thẻ'.
Làm sao buộc một phần tử luôn là mảng và không gian tên được xử lý ra sao?
Theo mặc định, một thẻ xuất hiện một lần sẽ trở thành đối tượng JSON, còn cùng một thẻ xuất hiện nhiều lần sẽ trở thành mảng, nên danh sách chỉ có một phần tử có thể mất dạng mảng. Nếu mã của bạn luôn mong đợi một mảng, hãy xử lý hậu kỳ JSON hoặc bọc giá trị trong [] sau khi chuyển đổi. Các phần tử và thuộc tính có không gian tên (ví dụ xmlns:soap hoặc soap:Body) được giữ nguyên với tiền tố như một phần của khóa, nhờ vậy phong bì SOAP chuyển đổi hai chiều chính xác. Kết hợp điều này với 'Giữ CDATA và Chú Thích' và 'Giữ Số 0 Ở Đầu' để công việc di chuyển dữ liệu an toàn.
