Chuyển đổi miễn phí

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

Hoặc

Về công cụ nà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ý.

Tại sao chuyển đổi XML sang JSON

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.

Cách sử dụng

Dán XML, nhận JSON.

  1. Dán hoặc tải lên XML của bạn: Dán văn bản XML vào vùng nhập hoặc thả một tệp. XML phải được định dạng đúng; XML không đúng định dạng tạo ra lỗi phân tích cú pháp thay vì lỗi đoán.
  2. Chuyển đổi: DOMParser xây dựng một DOM, trình chuyển đổi sẽ xử lý từng phần tử và JSON được tạo bằng cách sử dụng các khóa thuộc tính (@attr) và các khóa nội dung văn bản (#text) nếu cần. Các phần tử anh chị em có cùng tên sẽ trở thành mảng.
  3. Xem lại cấu trúc: Kiểm tra JSON để xác nhận các thuộc tính, văn bản và phần lồng được ánh xạ như mong đợi. Các quy ước được sử dụng (ví dụ: @ cho các thuộc tính) sẽ hiển thị ở đầu ra.
  4. Tải xuống hoặc sao chép: Lưu dưới dạng .json hoặc sao chép vào clipboard.

Các trường hợp sử dụng phổ biến

Chi tiết kỹ thuật

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.

Thực tiễn tốt nhất

Câu hỏi thường gặp

Việc chuyển đổi XML sang JSON có làm thay đổi nội dung không?
Nội dung được bảo quản chính xác nhất có thể. Tuy nhiên, một số tính năng dành riêng cho định dạng có thể không có tính năng tương đương trực tiếp, do đó có thể xảy ra những khác biệt nhỏ về định dạng.
Tại sao chuyển đổi dữ liệu sang định dạng JSON?
JSON là định dạng dữ liệu tiêu chuẩn cho API web và ứng dụng JavaScript. Nó dễ đọc, được hỗ trợ rộng rãi bởi các ngôn ngữ lập trình và có cú pháp đơn giản hơn XML.
Trình chuyển đổi có xử lý các cấu trúc XML lồng nhau hoặc phức tạp không?
Đúng. Công cụ này phân tích cú pháp chính xác các đối tượng lồng nhau, mảng và tất cả các kiểu dữ liệu XML tiêu chuẩn, bảo toàn cấu trúc dữ liệu đầy đủ trong đầu ra JSON.
Việc chuyển đổi này có an toàn và riêng tư không?
Đúng. Tất cả quá trình xử lý diễn ra cục bộ trong trình duyệt của bạn. Dữ liệu của bạn không bao giờ rời khỏi thiết bị của bạn — không cần tải lên máy chủ, không xử lý đám mây, không thu thập dữ liệu.
Các phần CDATA có được xử lý không?
Đúng. Nội dung CDATA được chuyển đổi thành văn bản thuần túy ở đầu ra JSON. Bản thân gói CDATA không được bảo tồn nhưng nội dung thì có.
Dữ liệu của tôi có được tải lên máy chủ không?
Không. DOMParser chạy trong trình duyệt của bạn; quá trình chuyển đổi diễn ra hoàn toàn trên thiết bị của bạn.
Chuyến đi khứ hồi JSON có quay trở lại XML không?
Có nếu bạn sử dụng quy ước nghịch đảo (công cụ JSON sang XML tuân theo các quy tắc @attr và #text tương tự). Chuyến đi khứ hồi bảo toàn cấu trúc cho XML điển hình; một số trường hợp đặc biệt (thứ tự nội dung hỗn hợp, hướng dẫn xử lý) có thể không tồn tại một cách hoàn hảo.
Kích thước đầu vào tối đa là bao nhiêu?
Lên đến 50 MB. DOMParser bị giới hạn bộ nhớ bởi trình duyệt của bạn; các tệp XML rất lớn có thể bị chậm hoặc không thể phân tích cú pháp.