XML sang Trình chuyển đổi JSON
Chuyển đổi dữ liệu hoặc tệp XML sang định dạng JSON ngay lập tức trong trình duyệt của bạn. Hỗ trợ thụt lề tùy chỉnh và xử lý các cấu trúc lồng nhau.
Chọn tệp XML
hoặc kéo thả vào đây
Chuyển đổi dữ liệu hoặc tệp XML sang định dạng JSON ngay lập tức trong trình duyệt của bạn. Hỗ trợ thụt lề tùy chỉnh và xử lý các cấu trúc lồng nhau.
hoặc kéo thả vào đây
XML và JSON đều là các định dạng trao đổi dữ liệu nhưng đến từ các thời đại khác nhau của web. XML, được tiêu chuẩn hóa vào năm 1998, được thiết kế dưới dạng định dạng đánh dấu tự mô tả với các thuộc tính, không gian tên và xác thực lược đồ. JSON nổi lên vào đầu những năm 2000 dưới dạng định dạng nhẹ hơn, phù hợp hơn với thời gian chạy JavaScript và API hiện đại. Hầu hết các API web mới đều nói JSON; nhiều hệ thống cũ hơn — dịch vụ SOAP, nguồn cấp dữ liệu RSS, tệp cấu hình, tích hợp doanh nghiệp — vẫn tạo ra XML. Chuyển đổi giữa chúng là một trong những nhiệm vụ tương tác phổ biến nhất trong quá trình phát triển hiện đại.
Việc chuyển đổi không hoàn toàn không bị mất dữ liệu vì hai định dạng có khả năng biểu đạt khác nhau. XML có các thuộc tính (mà JSON không có nguồn gốc), phân biệt giữa nội dung văn bản và tên phần tử, đồng thời hỗ trợ nội dung hỗn hợp (các phần tử chứa cả phần tử văn bản và phần tử con). Mô hình đối tượng/mảng đơn giản của JSON không thể biểu thị trực tiếp các tính năng này, do đó, trình chuyển đổi áp dụng các quy ước: thuộc tính trở thành khóa có tiền tố @, nội dung văn bản trở thành khóa #text, v.v.
Trình chuyển đổi này phân tích cú pháp XML bằng cách sử dụng DOMParser tích hợp sẵn của trình duyệt và duyệt cây DOM kết quả để tạo JSON. Các phần tử có cùng tên thẻ với anh chị em được tập hợp thành mảng; các thuộc tính đi vào các khóa đặc biệt; không gian tên và hướng dẫn xử lý được giữ nguyên khi có mặt. Kết quả là JSON mà con người có thể đọc được và quay lại XML một cách hợp lý.
Hầu hết mã ứng dụng hiện đại đều thoải mái hơn với JSON. JavaScript phân tích cú pháp JSON nguyên bản, mô-đun json của Python nằm trong thư viện tiêu chuẩn và hầu như mọi ngôn ngữ khác đều có hỗ trợ JSON hạng nhất tương đương. Quá trình xử lý XML yêu cầu nhập các thư viện bổ sung và viết thêm bản soạn sẵn. Chuyển đổi XML đến sang JSON trước khi xử lý thường là cách nhanh nhất từ nguồn cấp dữ liệu XML bên ngoài sang cấu trúc dữ liệu nội bộ.
Công cụ cũng dựa trên JSON. Có rất nhiều trình làm đẹp, trình xác thực, trình xác thực lược đồ, ngôn ngữ truy vấn (jq, JSONPath) và trình xem JSON; các nội dung tương đương của XML ít hơn và thường cũ hơn. Làm việc trong JSON sẽ mở ra một hệ sinh thái công cụ phong phú hơn.
Dán XML, nhận JSON.
DOMParser tạo ra một DOM XML giống hệt với những gì trình duyệt sử dụng cho các trang XHTML. Bộ chuyển đổi thực hiện đệ quy DOM này. Đối với mỗi phần tử, nó tạo ra một đối tượng JSON: các thuộc tính trở thành các khóa có tiền tố @ (ví dụ: @id, @class); các phần tử con của phần tử được đệ quy vào cùng một cấu trúc; nội dung văn bản, khi xuất hiện bên cạnh trẻ em, sẽ nằm dưới khóa #text.
Các phần tử con lặp lại có cùng tên thẻ được thu thập vào một mảng JSON. Một tên con duy nhất xuất hiện dưới dạng giá trị đối tượng; nhiều trẻ em xuất hiện dưới dạng một mảng các đối tượng. Quy ước này hoạt động tốt trong thực tế nhưng có nghĩa là hình dạng JSON phụ thuộc vào việc các phần tử xuất hiện một lần hay nhiều lần — một điểm không hoàn hảo đã biết của ánh xạ XML sang JSON.
Không gian tên được giữ nguyên như một phần của tên thành phần (tiền tố:localName). Hướng dẫn xử lý và phần CDATA được chuyển đổi thành nội dung văn bản. Các khai báo XML và DOCTYPE bị loại bỏ khỏi đầu ra JSON nhưng không ảnh hưởng đến dữ liệu.