Chuyển đổi từ XML sang JSON
XML và JSON mô hình hóa dữ liệu theo những cách khác nhau: XML có thuộc tính và nội dung hỗn hợp, còn JSON có đối tượng và mảng. Để chuyển đổi mà không mất dữ liệu cần một quy ước. Công cụ này cung cấp ba quy ước: compact (loại bỏ thuộc tính), Badgerfish (đặt thuộc tính dưới @key, văn bản dưới $) và literal (mọi nút XML đều trở thành một đối tượng JSON với độ trung thực hoàn toàn). Hãy chọn quy ước phù hợp với bên tiêu thụ JSON mà bạn nhắm tới.
Cách chuyển đổi XML sang JSON
-
1
Dán XML
Bất kỳ XML hợp lệ nào. Các không gian tên được bảo toàn.
-
2
Chọn kiểu chuyển đổi
Compact, Badgerfish hoặc literal/không mất dữ liệu.
-
3
Xử lý mảng
Buộc một số phần tử nhất định luôn là mảng (có thể cấu hình).
-
4
Sao chép kết quả JSON
In đẹp hoặc thu gọn, tùy bạn chọn.
So sánh ba kiểu
Đầu vào:
<book id="1" lang="en">
<title>1984</title>
<author>Orwell</author>
</book>
Compact (loại bỏ thuộc tính):
{
"book": {
"title": "1984",
"author": "Orwell"
}
}
Badgerfish (thuộc tính nằm dưới @, văn bản nằm dưới $):
{
"book": {
"@id": "1",
"@lang": "en",
"title": { "$": "1984" },
"author": { "$": "Orwell" }
}
}
Literal / giống JsonML (độ trung thực hoàn toàn):
{
"book": {
"@attributes": { "id": "1", "lang": "en" },
"title": "1984",
"author": "Orwell"
}
}
Mảng bắt buộc
XML không có cách nào để nói “đây là một danh sách gồm một phần tử”. Một chuỗi chỉ chứa một phần tử trông giống hệt như một giá trị vô hướng (scalar):
<items>
<item>A</item>
</items>
Nó có thể được tuần tự hóa thành {"item": "A"} hoặc {"item": ["A"]}. Bộ chuyển đổi cho phép bạn đánh dấu tên phần tử (theo XPath) để luôn là mảng, nhờ đó bên tiêu thụ JSON ở phía sau nhận được các kiểu dữ liệu nhất quán.
Nội dung hỗn hợp
Nội dung hỗn hợp – văn bản xen kẽ với các phần tử con – chính là chỗ duy nhất mà mọi quá trình chuyển đổi từ XML sang JSON đều mất thông tin:
<p>Hello <em>world</em>!</p>
Hầu hết các kiểu đều loại bỏ hoặc gộp văn bản lại. Kiểu literal giữ nguyên thứ tự thông qua một mảng:
{
"p": {
"@content": ["Hello ", { "em": "world" }, "!"]
}
}
Suy luận kiểu
Theo mặc định, các giá trị là chuỗi. Bật tùy chọn “phân tích số/boolean” và bộ chuyển đổi sẽ ép 42, 3.14, true, false thành các kiểu JSON tương ứng. Hãy lưu ý: thuộc tính XML id="007" sẽ trở thành 7 khi bật ép kiểu, điều mà bạn rất có thể không mong muốn.
Khi nào nên chọn kiểu nào
- Compact: dành cho JSON dễ đọc với con người, khi các thuộc tính chỉ là nhiễu.
- Badgerfish: khi bạn cần thuộc tính và văn bản ở cùng độ sâu với các phần tử con.
- Literal: khi bạn phải chuyển đổi ngược về XML mà không mất dữ liệu.
Câu hỏi thường gặp
Khi một phần tử chỉ xuất hiện một lần, bộ chuyển đổi mặc định dùng đối tượng; nếu xuất hiện hai lần trở lên thì dùng mảng. Hãy dùng tùy chọn buộc thành mảng để đảm bảo nhất quán nếu bên tiêu thụ của bạn kỳ vọng một hình dạng duy nhất.
Các tiền tố không gian tên được giữ nguyên trong khóa (ns:title), trừ khi bạn bật tùy chọn “loại bỏ không gian tên”. Bản thân các khai báo sẽ trở thành thuộc tính @xmlns:ns trên phần tử gốc.
Chế độ literal là gần nhất với việc không mất dữ liệu, tuy nhiên thứ tự của nội dung hỗn hợp giữa các phần tử và văn bản khá phức tạp. Chế độ compact chắc chắn sẽ làm mất các thuộc tính. Badgerfish là giải pháp trung gian thực dụng.
Không. Quá trình chuyển đổi sẽ được thực hiện trực tiếp trong trình duyệt của bạn.
Công cụ liên quan
Bảng tham chiếu ASCII
Bảng ASCII đầy đủ từ 0 đến 127 với giá trị thập phân, thập lục phân, bát phân, nhị phân và ký hiệu tham chiếu ký tự số HTML, gồm NUL, LF và DEL.
Tham chiếu ký tự HTML
Danh sách có thể tìm kiếm các thực thể HTML, mã tên và mã số tương ứng của chúng, cùng chức năng sao chép chỉ với một cú nhấp cho các ký tự đặc biệt và biểu tượng.
Bảng tham khảo phím tắt
Tìm phím tắt mặc định theo tài liệu của VS Code, Chrome và Bash dùng GNU Readline trên macOS, Windows và Linux.
Trình giải mã mã JavaScript (JavaScript Deobfuscator)
Giải mã mã JavaScript đã được rút gọn hoặc nén bằng cách đổi tên biến, giải mã chuỗi và mảng, đảo ngược cấu trúc dòng điều khiển và làm đẹp mã.
Chuyển đổi từ RGB sang CMYK
Chuyển màu RGB thành phần trăm mực CMYK bằng công thức tiêu chuẩn. Xem trước tức thì và các giá trị C/M/Y/K. Đây là phép xấp xỉ toán học, không phải chuyển đổi có quản lý màu.
Trình chuyển ASCII sang Hex
Biến văn bản ASCII thành giá trị byte thập lục phân. Đầu ra dùng hai chữ số hex cho mỗi ký tự, sẵn sàng cho memory dump, packet trace hoặc bảng firmware.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- XML zu JSON [DE]
- XML para JSON [PT]
- XML till JSON [SV]
- แปลง XML เป็น JSON [TH]
- XML ke JSON [ID]
- XML → JSON [KO]
- XML a JSON [ES]
- XMLからJSONへ [JA]
- XML إلى JSON [AR]
- XML vers JSON [FR]
- XML naar JSON [NL]
- XML do JSON [PL]
- XML in JSON [IT]
- От XML к JSON [RU]
- XML'den JSON'a [TR]
- XML 转 JSON [ZH]
- XML to JSON [EN]