Chuyển đến nội dung

Công cụ chuyển đổi định dạng XML sang JSON

Chuyển XML thành JSON bằng xml-js ở chế độ compact: thuộc tính nằm trong _attributes, văn bản trong _text và các phần tử cùng cấp lặp lại trở thành mảng. Mọi giá trị vẫn là chuỗi.

Xem phản hồi SOAP, RSS hoặc API XML cũ dưới dạng JSON trước khi viết mã phân tích.

XML

JSON

Khi nào nên sử dụng

  • Xem phản hồi SOAP, RSS hoặc API XML cũ dưới dạng JSON trước khi viết mã phân tích.
  • Trích xuất giá trị thuộc tính và văn bản từ bản xuất XML để đưa vào các công cụ dùng JSON.

Cách sử dụng

  1. Dán XML hoặc tải tệp .xml vào trình soạn thảo bên trái.
  2. Trong JSON, đọc thuộc tính từ _attributes, văn bản của phần tử từ _text và các phần tử lặp lại từ mảng.
  3. Sao chép JSON và ánh xạ các trường cần dùng vào cấu trúc của bạn.

Đầu vào XML

<order id="1042">
  <customer>Ada Lovelace</customer>
  <item sku="A-1">Keyboard</item>
  <item sku="B-7">Mouse</item>
</order>

JSON

{
  "order": {
    "_attributes": {
      "id": "1042"
    },
    "customer": {
      "_text": "Ada Lovelace"
    },
    "item": [
      {
        "_attributes": {
          "sku": "A-1"
        },
        "_text": "Keyboard"
      },
      {
        "_attributes": {
          "sku": "B-7"
        },
        "_text": "Mouse"
      }
    ]
  }
}

Chi tiết và giới hạn

Quá trình chuyển đổi chạy trong trình duyệt. Không có cài đặt; định dạng compact là cố định.

Phần tử xuất hiện một lần là đối tượng, nhưng khi xuất hiện hai lần sẽ trở thành mảng, nên cấu trúc JSON có thể thay đổi theo dữ liệu. Hãy xử lý cả hai trường hợp trong mã.

Khai báo XML, chú thích và CDATA được giữ dưới dạng _declaration, _comment và _cdata. Công cụ không kiểm tra theo lược đồ (XSD) hoặc DTD.

Nội dung hỗn hợp (văn bản xen kẽ với thẻ) bị mất thứ tự ban đầu.

FAQ

Số và boolean có được chuyển sang kiểu JSON tương ứng không?

Không. Giá trị thuộc tính và văn bản vẫn là chuỗi, ví dụ "1042". Hãy tự chuyển kiểu trong mã khi cần.

Điều gì xảy ra nếu XML của tôi sai định dạng?

Trang hiển thị lỗi "XML không hợp lệ" thay cho JSON, chẳng hạn "thẻ <order> chưa đóng" hoặc "thẻ đóng không mong đợi (dòng 3, cột 8)". Hãy đóng mọi phần tử, đặt giá trị thuộc tính trong dấu nháy và chuyển & thành &amp;.

Tôi có thể nhận JSON không có khóa _text và _attributes không?

Không thể trên trang này. Định dạng compact giữ các khóa đó để tránh nhầm lẫn giữa thuộc tính và văn bản. Hãy điều chỉnh cấu trúc kết quả bằng mã sau khi sao chép.

Đặc tả và tài liệu tham khảo