Chuyển XML sang JSON
Biến tài liệu XML thành JSON gọn gàng.
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ả.
- Giữ nguyên thuộc tính
- Thẻ lặp lại thành mảng
- Vị trí lỗi chính xác
Cách chuyển XML sang JSON
- Dán XML của bạn hoặc tải file lên.
- Giữ hoặc bỏ thuộc tính bằng ô đánh dấu.
- Sao chép JSON hoặc tải về.
Ví dụ: XML vào, JSON ra
| XML | JSON |
|---|---|
| <name>Sam</name> | {"name":"Sam"} |
| <item id="5">Widget</item> | {"item":{"@_id":"5","#text":"Widget"}} |
| <tag>a</tag><tag>b</tag> | {"tag":["a","b"]} |
XML sang JSON giữ lại những gì
- Thuộc tính, khi ô đánh dấu được bật, dưới dạng khóa bắt đầu bằng @_.
- Nội dung văn bản đi kèm thuộc tính dưới khóa #text, khi một phần tử có cả hai.
- Thẻ anh em lặp lại thành một mảng JSON, theo đúng thứ tự trong tài liệu.
- Số có số 0 ở đầu, như 007, được giữ dạng văn bản để ID không bao giờ bị thay đổi.
Nguyên nhân thường gặp khiến XML sai định dạng
- Một thẻ chưa đóng hoặc không khớp.
- Một dấu & hoặc < trần trong văn bản, lẽ ra phải viết thành & hoặc <.
- Hai phần tử ở cấp cao nhất, vì XML hợp lệ chỉ cho phép một gốc duy nhất.
XML sang JSON giúp ích ở đâu
- Đọc phản hồi từ một API SOAP cũ bên trong một frontend hiện đại dựa trên JSON.
- Chuyển đổi một feed RSS hoặc Atom sang JSON để một script duyệt qua.
- Xem nội dung file cấu hình xuất từ phần mềm doanh nghiệp chỉ nói ngôn ngữ XML.
- Kiểm tra xem một hệ thống cũ thực sự xuất ra gì trước khi viết cả một pipeline import cho nó.
Câu hỏi thường gặp về XML sang JSON
Thuộc tính XML sẽ ra sao?
Chúng được giữ lại thành các trường có tên bắt đầu bằng @_, nên id="5" sẽ thành "@_id": "5". Hãy tắt bao gồm thuộc tính để bỏ qua chúng.
Phần tử lặp lại được xử lý thế nào?
Các phần tử anh em cùng tên thẻ sẽ thành một mảng JSON. Một thẻ chỉ xuất hiện một lần sẽ vẫn là một giá trị đơn.
Số có được chuyển đổi không?
Số thuần như 42 sẽ thành số JSON. Giá trị có số 0 ở đầu, như 007, vẫn giữ dạng văn bản để mã và ID không bị thay đổi.
Vì sao công cụ báo XML của tôi sai định dạng?
Thường là do một thẻ chưa đóng, thẻ đóng không khớp, hoặc văn bản chứa dấu & trần lẽ ra phải viết thành &. Lỗi sẽ nêu rõ dòng và cột.
Namespace trong XML có được giữ lại không?
Tiền tố namespace vẫn giữ nguyên như một phần của tên thẻ, ví dụ ns:id sẽ thành một khóa có tên đúng là ns:id, vì công cụ này không phân giải URI namespace thành gì khác.
Một thẻ tự đóng như <br/> sẽ ra sao?
Nó sẽ thành một giá trị chuỗi rỗng, giống hệt kết quả bạn nhận được từ dạng dài hơn <br></br>.
Chú thích trong XML sẽ ra sao?
Chúng bị bỏ qua. JSON không có cú pháp chú thích để chuyển vào, nên chỉ dữ liệu của phần tử được chuyển đổi.
Công cụ có chuyển được file XML có DOCTYPE không?
Có, DOCTYPE được đọc rồi bỏ khỏi kết quả JSON, vì nó chỉ kiểm soát việc xác thực XML và không mang dữ liệu riêng để chuyển sang.