Chuyển JSON sang XML
Biến dữ liệu JSON thành XML hợp lệ.
Chạy ngay trên trình duyệt. Không có gì bạn nhập vào bị gửi đi đâu cả.
- Tùy chỉnh phần tử gốc
- Luôn đúng chuẩn định dạng
- Không tải gì lên
Cách chuyển JSON sang XML
- Dán hoặc tải lên JSON của bạn.
- Gõ tên cho phần tử gốc.
- Sao chép XML hoặc tải về.
Ví dụ: JSON vào, XML ra
| JSON | XML |
|---|---|
| {"name":"Sam"} | <root><name>Sam</name></root> |
| {"@_id":"5","#text":"Widget"} | <root id="5">Widget</root> |
| {"tag":["a","b"]} | <root><tag>a</tag><tag>b</tag></root> |
Khóa JSON thành tên thẻ như thế nào
- Một ký tự XML không cho phép trong tên, như dấu cách, sẽ được thay bằng _, nên "first name" thành first_name.
- Một khóa bắt đầu bằng chữ số sẽ được thêm _ ở đầu, vì tên thẻ XML không được bắt đầu bằng số.
- Một khóa trùng với một khóa đã đổi tên sẽ được thêm số ở cuối, nên first_name thứ hai sẽ thành first_name_2.
JSON sang XML hữu ích ở đâu
- Đưa dữ liệu vào một hệ thống hoặc API cũ chỉ chấp nhận XML.
- Dựng một feed nhỏ, kiểu file RSS, từ một nguồn dữ liệu JSON.
- Xem thử một payload JSON sẽ trông ra sao khi làm nội dung request SOAP hoặc XML kiểu cũ.
Những giới hạn cần lưu ý
- Một giá trị null trong JSON sẽ thành một phần tử rỗng, vì XML không có gì mang đúng nghĩa null.
- Các khóa chỉ khác nhau về chữ hoa chữ thường, như Name và name, sẽ thành hai thẻ khác nhau, vì tên thẻ XML phân biệt hoa thường.
- Số và boolean được viết dưới dạng văn bản thuần trong XML. Bên đọc phải tự biết cách phân tích ngược lại đúng kiểu ban đầu.
Câu hỏi thường gặp về JSON sang XML
Mảng được viết trong XML như thế nào?
Mỗi phần tử trong mảng thành một thẻ lặp lại, đặt tên theo khóa của nó. Một mảng ở cấp cao nhất được bọc trong các thẻ item dưới phần tử gốc.
Làm sao để tạo thuộc tính?
Hãy bắt đầu một khóa bằng @_, ví dụ "@_id": 5, và nó sẽ thành thuộc tính của phần tử cha. Cách này khớp với kết quả của bộ chuyển XML sang JSON.
Nếu một khóa không phải tên thẻ XML hợp lệ thì sao?
Các ký tự XML không cho phép trong tên, như dấu cách, sẽ được thay bằng _, và một tên bắt đầu bằng chữ số sẽ được thêm _ ở đầu. Vậy "first name" sẽ thành first_name.
Tôi có thể chuyển đi rồi chuyển ngược lại qua XML sang JSON không?
Được. JSON do bộ chuyển XML sang JSON tạo ra khi bật thuộc tính, bao gồm các khóa @_ và giá trị #text, sẽ chuyển ngược thành đúng XML tương ứng ở đây.
Một mảng JSON gồm giá trị đơn giản, như danh sách thẻ tag, sẽ ra sao?
Mỗi giá trị thành một thẻ lặp lại riêng, đặt tên theo khóa của mảng, ví dụ mảng tags ["a","b"] dưới khóa tag sẽ thành <tag>a</tag><tag>b</tag>.
Kết quả có gồm khai báo XML không?
Có. Mọi kết quả đều bắt đầu bằng <?xml version="1.0" encoding="UTF-8"?> trên dòng riêng.
Công cụ có escape các ký tự đặc biệt như < hay & trong văn bản không?
Có. Bất kỳ ký tự nào có thể làm hỏng cú pháp XML trong văn bản hoặc giá trị thuộc tính đều được escape tự động, nên kết quả luôn phân tích lại được chính xác.
Tôi có thể lồng một object trong một mảng bên trong một object khác không?
Được. Bất kỳ độ sâu và cách kết hợp object với mảng nào cũng chuyển đổi được, mỗi cấp thành một tập phần tử lồng riêng.