Cách chuyển JSON sang XML
- Dán JSON hoặc mở file
.json. XML sẽ hiện ngay bên cạnh trong lúc bạn gõ. - Đặt tên phần tử gốc (hoặc để trống để dùng khóa duy nhất ở cấp cao nhất), tiền tố thuộc tính và kiểu thụt lề.
- Sao chép XML hoặc tải về dưới dạng file
.xml.
JSON được ánh xạ sang XML như thế nào
| JSON | XML |
|---|---|
{"name": "Ada"} | <name>Ada</name> |
{"@id": "7"} | thuộc tính id="7" trên phần tử cha |
{"#text": "Hello"} | nội dung văn bản của phần tử cha |
{"tag": ["a", "b"]} | <tag>a</tag><tag>b</tag> |
{"note": null} | <note/> |
{"2nd key": 1} | <_2nd_key>1</_2nd_key> – tên không hợp lệ được tự sửa |
mảng ở cấp cao nhất [1, 2] | <root><item>1</item><item>2</item></root> |
&, <, > trong văn bản | &, <, > |
JSON và XML khác nhau thế nào
JSON có mảng, số, boolean và null; XML chỉ có phần tử, thuộc tính và văn bản, nên kiểu dữ liệu không được giữ lại: 42 và "42" đều thành văn bản 42. Ngược lại, XML có thuộc tính, namespace và nội dung hỗn hợp mà JSON không có. Nếu định chuyển XML ngược lại sang JSON sau này, hãy giữ các quy ước phổ biến được dùng ở đây – @ cho thuộc tính và #text cho nội dung văn bản – vốn được hầu hết các công cụ chuyển đổi hiểu.
Câu hỏi thường gặp
Mảng JSON được chuyển sang XML như thế nào?
Mỗi mục trong mảng trở thành một phần tử XML mang tên khóa của mảng, nên {"book": [ … ]} thành nhiều phần tử <book>. Các mục của mảng ở cấp cao nhất thành phần tử <item> bên trong phần tử gốc.
Làm sao tạo thuộc tính XML từ JSON?
Thêm tiền tố @ vào trước khóa: {"user": {"@id": 7, "name": "Ada"}} sẽ thành <user id="7"><name>Ada</name></user>. Bạn có thể đổi tiền tố trong phần tùy chọn.
Khóa không phải tên XML hợp lệ sẽ ra sao?
Các ký tự không được phép trong tên XML, như dấu cách, được thay bằng dấu gạch dưới, và tên bắt đầu bằng chữ số hoặc bằng “xml” sẽ được thêm dấu gạch dưới ở đầu: "2nd key" thành <_2nd_key>.
XML được tạo ra có hợp lệ không?
Có. Các ký tự đặc biệt đều được escape, mọi tên phần tử đều hợp lệ và tài liệu có đúng một phần tử gốc, kèm khai báo XML tùy chọn ở đầu.