Bạn có xem tại ví dụ về tài liệu JSON và XML không?
Trong khi cả JSON và XML được sử dụng để đại diện cho các dữ liệu cây tùy ý, XML dài hơn nhiều. Mỗi phần tử trong cây có một tên (tên kiểu phần tử) và phần tử phải được đặt trong một cặp thẻ phù hợp. Ngược lại, JSON biểu thị cây theo kiểu ký tự "mảng lồng nhau" giống như của Javascript (trên thực tế, một tài liệu JSON theo nghĩa đen có thể được phân tích cú pháp dưới dạng Javascript để tạo thành mảng tương ứng).
Hãy xem at the differences.
XML là tất nhiên ngữ nghĩa phong phú hơn, vì các yếu tố có thể được trang trí với một số tùy ý của thuộc tính, và các yếu tố có thể chứa nội dung hỗn hợp của dòng văn bản miễn phí và hơn nữa, yếu tố lồng nhau. Ví dụ, đoạn mã sau đây sẽ là tẻ nhạt để diễn tả như JSON:
<paragraph>
This is an entire paragraph of <emph>text</emph>. It is interspersed with
further, nested <emph>XML elements</emph>, as well as the occasional
<link href="http://stackoverflow.com/a/12346394/596781">hyperlink</link>.
</paragraph>
Mặt khác, dữ liệu -like tài liệu có thể được đơn giản hơn nhiều trong JSON. Hãy tưởng tượng điều này:
<properties>
<property type="int" name="ID">123</property>
<property type="date" name="birthday">19700101</property>
<references>
<url>http://stackoverflow.com/a/12346394/596781</url>
<doi>something.made.up</doi>
</references>
</properties>
Điều này trở thành một mảng JSON rất nhỏ gọn.
Cân nhắc thứ cấp là lượng bộ công cụ bao quanh cả hai định dạng. Trong khi các công cụ JSON chủ yếu là phân tích cú pháp dữ liệu JSON, W3C đã phát triển một tập hợp rất lớn các công nghệ kết dính để thao tác XML theo kiểu có hệ thống, chẳng hạn như XSLT và XPATH.
Tóm lại, và như một ý kiến rất cá nhân, tôi muốn nói rằng XML là về tài liệu và JSON là về dữ liệu. XML sẽ cảm thấy tự nhiên và hữu ích hơn cho các tài liệu có cấu trúc lớn, trong khi JSON thường là định dạng đơn giản hơn và ít tiết hơn để truyền dữ liệu.
Câu trả lời hoàn chỉnh xem xét tất cả ba câu trả lời hàng đầu mà bạn nhận được. Nếu bạn đang cố gắng chọn giữa XML và JSON, nó sẽ được đáp ứng để tự hỏi mình sẽ phục vụ mục đích gì. Nếu bạn muốn tuần tự hóa nhỏ gọn cho việc truyền tải hoặc lưu trữ khối lượng, JSON sẽ di chuyển. Nếu bạn muốn làm thủ tục tài liệu, XML là, như Kerrek lưu ý, tốt hơn được hỗ trợ bởi các công nghệ kết dính. Nếu bạn đang sử dụng .NET framework thì điều này ít quan trọng hơn vì LINQ có thể truy vấn/biến đổi thực tế mọi thứ. –
@PeterWone: Không có gì giống như "ba câu trả lời hàng đầu" trên StackOverflow, bởi vì thứ tự thay đổi theo thời gian tùy theo số phiếu bầu. Để tham khảo các câu trả lời cụ thể, vui lòng đặt tên tác giả hoặc cung cấp cho liên kết cố định. Cụ thể, tại thời điểm viết bài này, chúng tôi có một câu trả lời với 21 phiếu và ba câu trả lời với 5 phiếu bầu. Vậy cái nào là "top ba"? :) – KPM
@KPM - vâng, và đó là chính xác những gì tôi muốn nói: ba câu trả lời có điểm số cao nhất tại thời điểm nhận xét. Tôi * đã * đặt tên cho một trong những tác giả và nhận xét của tôi có khả năng tự đứng vững; Tôi đề cập đến những câu trả lời đó hoàn toàn như một sự lịch sự đối với các tác giả. Dù sao, ở đây chúng tôi là năm sau và họ vẫn là ba câu trả lời hàng đầu cũng như ba câu trả lời hàng đầu. –