bộ đệm giao thức google vs json vs XML [đã đóng]


230

Tôi muốn biết công đức và công đức của

  • Bộ đệm giao thức Google
  • JSON
  • XML

Tôi muốn triển khai một khung chung cho hai ứng dụng, một trong Perl và thứ hai trong Java. Vì vậy, muốn tạo ra dịch vụ chung có thể được sử dụng bởi cả công nghệ, ví dụ như Perl & Java.

Cả hai đều là ứng dụng web.

Hãy chia sẻ cho tôi những suy nghĩ và đề nghị có giá trị của bạn về điều này. Tôi đã thấy nhiều liên kết trên google nhưng tất cả đều có ý kiến ​​trái chiều.


9
Và bạn nghĩ rằng có khả năng có một sự đồng thuận ở đây?
Barmar


1
Cảm ơn rất nhiều. Nhưng muốn biết thêm Bộ đệm giao thức so với JSON.
Manoj Kathiriya

19
@Barmar Không phải là về sự đồng thuận, đó là về sự lựa chọn hợp lý, về ưu và nhược điểm, thật tốt khi câu hỏi được đặt ra trước khi cảnh sát meta bắt đầu hạ thấp chất lượng nội dung SO.
Boris Treukhov

Tôi đã từng phản đối mạnh mẽ những câu hỏi như vậy được đóng lại một cách tùy tiện. Nhưng thực tế là, nếu tôi đã tham khảo một dự án cần thiết để đưa ra lựa chọn này, tôi sẽ muốn có nhiều thông tin hơn so với thông thường xuất hiện trong một bài viết SO; bất kỳ lời khuyên nào bạn sẽ nhận được ở đây là giai thoại và dựa trên sự thiếu hiểu biết gần như hoàn toàn về các yêu cầu và ràng buộc của dự án cụ thể của bạn.
Michael Kay

Câu trả lời:


279

Json

  • con người có thể đọc / chỉnh sửa
  • có thể được phân tích cú pháp mà không biết trước lược đồ
  • hỗ trợ trình duyệt tuyệt vời
  • ít dài dòng hơn XML

XML

  • con người có thể đọc / chỉnh sửa
  • có thể được phân tích cú pháp mà không biết trước lược đồ
  • tiêu chuẩn cho SOAP, v.v.
  • hỗ trợ công cụ tốt (xsd, xslt, sax, dom, v.v.)
  • khá dài dòng

Protobuf

  • dữ liệu rất dày đặc (đầu ra nhỏ)
  • khó giải mã mạnh mẽ mà không biết lược đồ (định dạng dữ liệu mơ hồ bên trong và cần lược đồ để làm rõ)
  • xử lý rất nhanh
  • không dành cho mắt người (nhị phân dày đặc)

Tất cả đều có hỗ trợ tốt trên hầu hết các nền tảng.

Cá nhân, tôi hiếm khi sử dụng XML những ngày này. Nếu người tiêu dùng là một trình duyệt hoặc API công khai, tôi có xu hướng sử dụng json. Đối với các API nội bộ, tôi có xu hướng sử dụng protobuf cho hiệu suất. Cung cấp cả trên API công khai (thông qua các tiêu đề hoặc các điểm cuối riêng biệt) cũng hoạt động tốt.


8
XML là công việc nhiều hơn để giải mã, nhưng xác thực có thể là một lợi thế lớn so với JSON. Xác thực XML của bạn bằng một lược đồ trước khi bạn xử lý một giao dịch thanh toán mà nó chứa cho bạn thêm một lớp mạnh mẽ.
CC.

11
XML cũng cho phép một kiểu tường thuật trong đó văn bản được xen kẽ với các thẻ bao gồm như thế <value>This is a <attention>narrative style</attention>. Tags could appear <exclamation /> in the middle of text</value>. Đây là tính năng độc đáo của XML khi so sánh với Bộ đệm JSON và Giao thức.
Paul

3
@Marc Gravell: Còn về khả năng tương thích về phía trước. Tôi có ấn tượng rằng đây là một trong những điểm bán hàng lớn của protobuf không?
Thomas Ahle

1
Igor Ganapolsky theo sự hiểu biết của tôi rằng điều này gần như không thể về mặt khái niệm, vì có rất ít hoặc không cần phân tích cú pháp cần thiết cho protobuff, trong khi giai đoạn xử lý kéo dài và không thể tránh khỏi với json.
Jules GM

3
Chỉ cần đề cập rằng bạn cũng có thể sử dụng các lược đồ với JSON.
Chúa Giêsu Angulo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.