UltKit

Chuyển XML sang JSON

Đưa dữ liệu từ phản hồi SOAP, feed RSS, file cấu hình hay bản xuất của hệ thống cũ sang JSON mà JavaScript, Python hoặc công cụ no-code của bạn đọc trực tiếp, không cần tự viết trình phân tích cú pháp.

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

Đầu ra

Tệp được xử lý trên máy chủ của chúng tôi và bị xóa sau 30 phút.

Cách sử dụng công cụ này

  1. 1

    Tải lên file XML

    Thả các file .xml vào khu vực tải lên, tối đa 20 file mỗi lượt và mỗi file không quá 95 MB. Mỗi file được chuyển đổi riêng.

  2. 2

    Chọn dạng dễ đọc hoặc thu gọn

    Tùy chọn Định dạng dễ đọc đang bật, giúp thụt lề JSON để dễ đọc và dễ review code. Hãy tắt tùy chọn này trong Cài đặt nâng cao để có kết quả một dòng gọn nhất cho payload API.

  3. 3

    Chuyển đổi và sử dụng JSON

    Nhấn Chuyển sang JSON, tải file .json về rồi nạp vào code hoặc công cụ của bạn.

Tải XML lên và nhấn Chuyển sang JSON: phần tử thành khóa, phần tử lặp lại thành mảng, thuộc tính được giữ dưới dạng khóa có tiền tố @, nên không mất thông tin nào trong các thẻ.

Ai cần công cụ chuyển XML sang JSON

XML 1.0 trở thành khuyến nghị của W3C vào tháng 2 năm 1998, và trong thập kỷ sau đó đây là cách các hệ thống giao tiếp với nhau: dịch vụ web SOAP, nguồn cấp RSS và Atom, tài liệu Office, thông điệp ngân hàng, danh mục sản phẩm. Nhiều hệ thống trong số đó vẫn đang chạy. JSON, được quy định trong RFC 8259, đã chiếm lĩnh các API web mới vì JavaScript đọc được mà không cần thư viện phân tích và vì nó ánh xạ trực tiếp sang danh sách và dictionary trong hầu hết ngôn ngữ.

Vì vậy những người chuyển đổi thường là người nối hai thời kỳ. Một lập trình viên front-end nhận phản hồi SOAP từ nhà cung cấp thanh toán hoặc vận chuyển và muốn có một đối tượng thuần. Một người xây dựng tự động hóa trong Zapier hoặc Make kéo nguồn XML của nhà cung cấp vào luồng hoạt động tốt nhất với JSON. Một kỹ sư dữ liệu chuyển file cấu hình từ ứng dụng Java cũ, hoặc một sinh viên cần nguồn RSS dạng JSON cho bài tập nhóm. Ai cũng muốn cùng cấu trúc đó mà không có dấu ngoặc nhọn.

Chuyển XML sang JSON: thẻ, thuộc tính và văn bản được ánh xạ thế nào

XML đầu vào: một đơn hàng có một thuộc tính, một khách hàng và hai sản phẩm
<order id="A-77">
  <customer>Lê Thu Trang</customer>
  <total currency="EUR">59.90</total>
  <item sku="0042">Đèn bàn</item>
  <item sku="0108">Bóng đèn LED</item>
</order>
Từng phần của đơn hàng ở trên xuất hiện trong JSON như thế nào
Thành phần XMLVí dụKết quả JSON
Phần tử gốc<order>Khóa cấp cao nhất order
Thuộc tínhid="A-77""@id": "A-77"
Phần tử chỉ có văn bản<customer>"customer": "Lê Thu Trang"
Văn bản kèm thuộc tínhphần tử <total currency="EUR">{"@currency": "EUR", "#text": "59.90"}
Phần tử lặp lạihai thẻ <item>mảng "item": [ … , … ]
Chú thích<!-- note -->Bị bỏ; JSON không có chú thích

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
Công cụ chuyển đổi 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
Công cụ chuyển đổi JSON

Chuyển XML sang JSON khi dữ liệu từ hệ thống cũ hoặc hệ thống doanh nghiệp cần đưa vào ứng dụng web, script hay công cụ tự động hóa: JSON được JavaScript phân tích sẵn và ánh xạ trực tiếp sang dictionary của Python.

Những tính năng của XML không có chỗ trong JSON

Cả hai định dạng đều mô tả cấu trúc cây, nhưng XML có thêm những thứ JSON chưa từng có. Namespace, do W3C định nghĩa năm 1999, cho phép một tài liệu trộn nhiều bộ từ vựng như soap: và xsi:; trong JSON chúng chỉ còn lại như một phần của tên khóa. Chú thích và chỉ thị xử lý không có chỗ để lưu nên bị bỏ. Nội dung hỗn hợp, tức văn bản xen kẽ với thẻ con như một đoạn XHTML có một từ in đậm, là XML hợp lệ nhưng trở nên vụng về trong JSON, nên XML dạng tài liệu nên chuyển sang HTML hoặc Markdown thay vì JSON.

Thứ tự là điểm tinh tế nhất. XML giữ các phần tử cùng cấp theo trình tự, và một schema có thể dựa vào đó; theo chuẩn, các khóa của đối tượng JSON thì không có thứ tự. Các phần tử lặp lại vẫn giữ thứ tự bên trong mảng của chúng, đủ cho hầu hết dữ liệu thực tế. Nếu XML là danh sách bản ghi phẳng cần đưa vào bảng tính thay vì code, XML sang Excel cho bạn hàng và cột trực tiếp, còn XML sang CSV tạo file để nhập vào cơ sở dữ liệu.

Câu hỏi thường gặp về chuyển XML sang JSON

Vì sao cùng một phần tử lại là mảng ở file này nhưng là đối tượng ở file khác?

Trình chuyển đổi chỉ thấy những gì có trong tài liệu. Nếu một đơn hàng có ba thẻ item, items sẽ thành một mảng; nếu chỉ có một thẻ thì không có gì để lặp lại, nên kết quả là một đối tượng đơn. Code đọc JSON nên chấp nhận cả hai dạng, hoặc bọc đối tượng đơn vào một mảng trước khi lặp.

Thuộc tính XML được ghi trong JSON như thế nào?

Mỗi thuộc tính trở thành một khóa có ký tự @ đứng trước tên, nên currency="EUR" thành "@currency": "EUR". Khi một phần tử vừa có thuộc tính vừa có văn bản, văn bản được đặt vào khóa #text bên cạnh. Quy ước này giúp thuộc tính và phần tử con không bị trùng nhau khi cùng tên.

Số trong XML có được chuyển thành số JSON không?

XML không có kiểu dữ liệu riêng; 42 và "42" trong một thẻ trông giống nhau. Vì vậy các giá trị được xuất ra dạng chuỗi, giúp giữ nguyên mã ZIP và các ID như 007. Hãy đổi các trường cần thiết sang số trong code sau khi phân tích.

Tiền tố namespace như soap:Envelope được xử lý ra sao?

Tiền tố vẫn là một phần của tên khóa, nên phần envelope xuất hiện là soap:Envelope và khai báo namespace là khóa @xmlns:soap. Cách này giữ các phần tử thuộc bộ từ vựng khác nhau tách biệt; nếu chỉ dùng một bộ, bạn có thể bỏ tiền tố trong code.

Sau đó có thể chuyển JSON ngược lại sang XML không?

Được, bằng JSON sang XML. Theo cùng quy ước @ và #text, các thuộc tính sẽ trở lại thành thuộc tính. Chú thích và phần thụt lề ban đầu không trở lại, vì JSON chưa từng lưu chúng.