Chuyển JSON sang XML
Chuyển dữ liệu JSON cho phần mềm chỉ đọc được XML. Mỗi bản ghi trở thành một phần tử, mỗi khóa thành một thẻ con, và toàn bộ tài liệu nằm dưới một phần tử gốc với tên do bạn chọn.
Chuyển đổi dữ liệu
hoặc thả tệp CSV, TSV, TXT … vào đây ·
Tối đa 95 MB mỗi tệp· Tối đa 20 tệp· Xóa sau 30 phút
Tệp được xử lý trên máy chủ của chúng tôi và bị xóa sau 30 phút.
Ký tự ngăn cách các cột trong tệp CSV và văn bản, dùng cho cả đọc và ghi. Tự động sẽ nhận diện từ dữ liệu đầu vào và ghi bằng dấu phẩy.
UTF-8 dùng được cho mọi ngôn ngữ. Chọn UTF-8 có BOM nếu Excel trên Windows hiển thị sai ký tự có dấu hoặc ký tự châu Á khi mở tệp CSV.
Với đầu vào Excel, ODS và Numbers: chỉ chuyển trang tính đầu tiên, hoặc mọi trang tính (mỗi trang tính một tệp CSV trong tệp ZIP, hoặc mỗi trang tính một khóa JSON).
Tên thẻ trang tính trong bảng tính mới, tối đa 31 ký tự.
Mảng đối tượng dùng tên cột làm khóa cho từng dòng; mảng của mảng gọn hơn và giữ tiêu đề làm mảng đầu tiên.
Tên phần tử ngoài cùng bao tất cả các dòng; mỗi dòng trở thành một <row> bên trong nó.
Dùng trong các câu lệnh CREATE TABLE và INSERT. Chỉ gồm chữ cái, chữ số và dấu gạch dưới.
Cách đặt dấu trích dẫn và kiểu cột hơi khác nhau giữa các cơ sở dữ liệu; hãy chọn hệ bạn sẽ nhập vào.
Ghi lại các ô ngày tháng theo một định dạng thống nhất. ISO (2026-10-18) an toàn nhất cho cơ sở dữ liệu và mã nguồn; giữ nguyên để chúng như trong tệp gốc.
Cách sử dụng công cụ này
- 1
Tải lên file JSON
Thêm file .json, chẳng hạn phản hồi từ API, hoặc file JSON Lines. Tối đa 20 file, mỗi file 95 MB.
- 2
Đặt tên phần tử gốc
Trong Cài đặt nâng cao, nhập thẻ ngoài cùng vào Thẻ gốc XML (mặc định là rows) và giữ bật Định dạng dễ đọc để kết quả được thụt lề.
- 3
Chuyển đổi và ánh xạ
Nhấn Chuyển sang XML rồi tải xuống. Hãy đổi tên thẻ nếu schema của hệ thống nhận yêu cầu tên khác.
Vì sao cần chuyển JSON sang XML khi phần lớn API đã dùng JSON
JSON đã thắng ở API web; đặc tả hiện hành RFC 8259 năm 2017 chỉ dài vài trang. XML ra đời sớm hơn, là khuyến nghị của W3C từ tháng 2 năm 1998, và vẫn còn ở những nơi có hợp đồng chặt chẽ: ngân hàng, hóa đơn điện tử, xuất bản và báo cáo cho cơ quan nhà nước.
Vì vậy chiều chuyển đổi này thường đi theo tiền bạc hoặc quy định. Lập trình viên lấy đơn hàng từ API JSON rồi phải gửi sang dịch vụ SOAP của đối tác. Cửa hàng lưu sản phẩm bằng JSON nhưng trang so sánh giá cần feed XML. Một nhóm lưu bản dịch dạng JSON còn bản build Android lại cần strings.xml. Nếu đích đến là bảng tính, chuyển JSON sang CSV sẽ cho bạn các dòng thay vì phần tử.
Những hệ thống vẫn yêu cầu dữ liệu đầu vào XML
| Tổ chức | Yêu cầu | Nguồn |
|---|---|---|
| Dịch vụ web SOAP | Mọi yêu cầu được gửi dưới dạng phong bì XML; SOAP 1.2 trở thành khuyến nghị của W3C năm 2003 | — |
| Google Merchant Center | Feed sản phẩm được chấp nhận dưới dạng XML theo RSS 2.0 hoặc Atom 1.0, cũng như văn bản phân tách | — |
| Hóa đơn điện tử Peppol | Hóa đơn được trao đổi dưới dạng tài liệu XML UBL 2.1 theo quy tắc Peppol BIS Billing 3.0 | — |
| Ứng dụng Android | Tài nguyên văn bản và bản dịch nằm trong res/values/strings.xml | — |
Ví dụ chuyển JSON sang XML: hai sản phẩm
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<row>
<sku>A-17</sku>
<price>12.5</price>
<tags>mới</tags>
<tags>giảm giá</tags>
</row>
<row>
<sku>B-02</sku>
<price>8</price>
</row>
</rows>Lầm tưởngJSON và XML tương ứng một-một nên chuyển đổi là chính xác tuyệt đối.
Sự thậtXML có thuộc tính, nội dung hỗn hợp và namespace mà JSON không có, còn JSON có các kiểu dữ liệu mà XML không có. Bộ chuyển đổi phải chọn một cách ánh xạ; ở đây dùng phần tử con cho mọi trường hợp.
Lầm tưởngSố 12.5 vẫn là số trong XML.
Sự thậtXML lưu ký tự. 12.5 chỉ là văn bản cho đến khi schema hoặc chương trình đọc xác định nó là số thập phân.
Những gì thay đổi khi JSON trở thành XML
Có ba điểm cần kiểm tra. Kiểu dữ liệu bị đưa về văn bản, nên true, null và 0 đều thành chuỗi ký tự; null thường thành phần tử rỗng. Khóa không phải tên XML hợp lệ phải được đổi tên, vì thẻ không thể bắt đầu bằng chữ số hoặc chứa dấu cách. Và kết quả lớn hơn, vì mỗi giá trị được bao bởi thẻ mở và thẻ đóng lặp lại tên khóa.
Ngoài ra không mất gì khác. Cấu trúc lồng nhau được giữ dưới dạng phần tử lồng nhau, thứ tự bản ghi được giữ nguyên, và văn bản Unicode vẫn nguyên vẹn vì file được ghi bằng UTF-8. Các tùy chọn khác cho dữ liệu có cấu trúc, từ YAML đến SQL, có ở trang chuyển đổi dữ liệu.
Thông tin về định dạng JSON và XML
JSON
Dữ liệu JavaScript Object Notation (JSON)
JSON là định dạng văn bản gọn nhẹ cho dữ liệu có cấu trúc, được Douglas Crockford phổ biến đầu thập niên 2000 và chuẩn hóa thành RFC 8259 và ECMA-404. Định dạng biểu diễn object, mảng, chuỗi, số, boolean và null bằng cú pháp đơn giản, dễ đọc. JSON là định dạng mặc định cho API web, tệp cấu hình và trao đổi dữ liệu giữa các ứng dụng trong hầu hết ngôn ngữ lập trình. Định dạng không có sẵn chú thích, kiểu ngày tháng hay schema, và tệp lớn lồng nhiều cấp rất khó đọc nếu không có trình xem.
- Nén
- –
- Độ trong suốt
- –
- Ảnh động
- –
- Ra mắt
- 2001 · Douglas Crockford
XML
Ngôn ngữ đánh dấu XML
XML là ngôn ngữ đánh dấu cho dữ liệu có cấu trúc, được W3C công bố năm 1998. Ngôn ngữ dùng các thẻ lồng nhau có thuộc tính và hỗ trợ schema, namespace và xác thực, nhờ đó vững chắc cho các tài liệu phức tạp. XML là nền tảng của RSS feed, SVG, tài liệu Office, sitemap và nhiều hệ thống trao đổi dữ liệu doanh nghiệp và chính phủ. XML dài dòng hơn JSON, nhưng mọi ngôn ngữ lập trình và nhiều công cụ bảng tính đều đọc được.
- Nén
- –
- Độ trong suốt
- –
- Ảnh động
- –
- Ra mắt
- 1998 · W3C
Người ta chuyển JSON sang XML khi dữ liệu hiện đại phải đi vào một hệ thống cũ hơn: endpoint SOAP, feed sản phẩm, mạng hóa đơn điện tử hoặc file cấu hình mà bên đọc được viết để phân tích phần tử chứ không phải dấu ngoặc nhọn.
Câu hỏi thường gặp về chuyển JSON sang XML
Vì sao XML cần một phần tử gốc khi JSON của tôi bắt đầu bằng một mảng?
Đặc tả XML 1.0 yêu cầu mọi tài liệu hợp lệ (well-formed) phải có đúng một phần tử chứa tất cả phần còn lại. Mảng JSON không có lớp bao như vậy, nên bộ chuyển đổi thêm một phần tử, đặt tên theo Thẻ gốc XML, và đặt từng phần tử của mảng vào bên trong dưới dạng <row>.
Các khóa JSON như "2024 total" hay "unit price" sẽ được xử lý thế nào?
Cả hai đều không phải tên phần tử XML hợp lệ: tên không được bắt đầu bằng chữ số hoặc chứa dấu cách. Hãy đổi tên các khóa đó trong JSON trước khi chuyển, tốt nhất là đúng tên thẻ mà schema bên nhận dùng, để kết quả không cần chỉnh sửa thêm.
Mảng JSON nằm trong một bản ghi được viết trong XML như thế nào?
Dưới dạng cùng một phần tử lặp lại theo từng mục. Mảng tags có ba chuỗi sẽ thành ba phần tử <tags> liên tiếp. Mảng rỗng không để lại gì, đây là một trong số ít chỗ chuyển JSON sang XML làm mất thông tin.
File XML có vượt qua được bước kiểm tra XSD của đối tác không?
Chỉ khi cấu trúc đã khớp sẵn. Bộ chuyển đổi tạo ra bản sao JSON đúng nguyên gốc và hợp lệ, nhưng không thể biết thứ tự phần tử, namespace hay thuộc tính mà đối tác yêu cầu. Hãy dùng kết quả làm điểm xuất phát rồi chỉnh theo schema.
Tôi có thể chuyển từ XML ngược lại sang JSON không?
Dùng chuyển XML sang JSON. Khi chuyển ngược sẽ có chút khác biệt: XML lưu mọi giá trị dưới dạng văn bản, nên số hoặc true ban đầu trong JSON có thể quay về dưới dạng chuỗi.