DevToolPal
VI

Chuyển đổi JSON sang XML

Chuyển JSON sang XML hợp lệ, có thụt lề, với mảng thành các phần tử lặp lại và khóa "@" thành thuộc tính.

Chạy cục bộ, không bao giờ tải lên

Tùy chọn

Đầu vào

0 ký tự · 0 B

Đầu ra

0 ký tự · 0 B

Công cụ này làm gì

Công cụ này chuyển dữ liệu JSON sang XML. Object trở thành phần tử, mảng trở thành các phần tử lặp lại, chuỗi, số và boolean trở thành văn bản, còn null trở thành phần tử rỗng. Khóa bắt đầu bằng @ biến thành thuộc tính và khóa #text đặt văn bản cho phần tử, khớp với định dạng mà công cụ chuyển XML sang JSON tạo ra, nên dữ liệu có thể chuyển đổi qua lại.

Cách sử dụng

  1. Dán JSON vào ô Đầu vào, tải lên tệp .json, hoặc nhấn Ví dụ.
  2. XML xuất hiện bên phải ngay khi bạn gõ. JSON không hợp lệ được báo lỗi kèm vị trí.
  3. Chọn kiểu Thụt lề, đặt Tên phần tử gốc, đổi Tiền tố khóa thuộc tính, và chọn có thêm khai báo <?xml ?> hay không.
  4. Sao chép XML hoặc tải xuống dưới dạng tệp .xml.

Ví dụ

{ "book": { "@id": "bk101", "title": "XML Guide", "tags": ["xml", "json"], "price": 44.95 } }

trở thành

<?xml version="1.0" encoding="UTF-8"?>
<book id="bk101">
  <title>XML Guide</title>
  <tags>xml</tags>
  <tags>json</tags>
  <price>44.95</price>
</book>

Ghi chú

Ký tự đặc biệt được escape (&, <, > trong văn bản và cả " trong thuộc tính), nên đầu ra có thể được nạp bởi bất kỳ parser XML nào. JSON không có cách biểu diễn namespace, chú thích hay CDATA, nên không có phần nào như vậy được tạo ra.

Câu hỏi thường gặp

› Làm sao để tạo thuộc tính XML từ JSON?

Bắt đầu khóa bằng "@". {"book": {"@id": "bk101", "title": "Guide"}} trở thành <book id="bk101"><title>Guide</title></book>. Bạn có thể đổi tiền tố hoặc xóa nó để biến mọi khóa thành phần tử.

› Mảng JSON được chuyển đổi thế nào?

Một mảng sẽ lặp lại phần tử cha của nó một lần cho mỗi mục, nên {"tag": ["a", "b"]} trở thành <tag>a</tag><tag>b</tag>. Mảng ở cấp cao nhất, hoặc mảng nằm trực tiếp trong một mảng khác, dùng phần tử <item>.

› Khóa không phải tên XML hợp lệ sẽ ra sao?

Dấu cách và ký hiệu được thay bằng dấu gạch dưới, còn tên bắt đầu bằng chữ số hoặc bằng "xml" được thêm dấu gạch dưới ở đầu, nên đầu ra luôn là XML hợp lệ.

› Phần tử gốc lấy từ đâu?

Nếu object JSON có đúng một khóa, khóa đó trở thành phần tử gốc. Nếu không, mọi thứ được bọc trong tên phần tử gốc ở phần tùy chọn, mặc định là "root".