2012-12-25 30 views
190

Tôi muốn biết những giá trị & de-giá trị củađệm giao thức google vs json vs XML

  • Google Nghị định thư Buffers
  • JSON
  • XML

Tôi muốn thực hiện một khuôn khổ chung cho hai ứng dụng, một trong Perl và thứ hai trong Java. Vì vậy, muốn tạo dịch vụ phổ biến có thể được sử dụng bởi cả hai công nghệ, tức là Perl & Java.

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

Hãy chia sẻ cho tôi những suy nghĩ quý giá của bạn & đề xuất 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 ​​khác nhau.

+9

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

+0

JSON và XML: http://stackoverflow.com/questions/4862310/json-and-xml-comparison –

+1

Cảm ơn rất nhiều. Nhưng muốn biết thêm Protocol Buffers và JSON. –

Trả lời

227

Json

  • human readable/chỉnh sửa
  • thể được phân tích mà không biết schema trước
  • hỗ trợ trình duyệt tuyệt vời
  • ít tiết hơn XML

XML

  • human readable/chỉnh sửa
  • thể được phân tích mà không biết schema trước
  • tiêu chuẩn cho SOAP vv
  • hỗ trợ công cụ tốt (XSD, XSLT, sax, dom, vv)
  • khá tiết

Protobuf

  • dữ liệu rất dày đặc (sản lượng nhỏ)
  • khó để mạnh mẽ giải mã mà không biết giản đồ (định dạng dữ liệu là nội mơ hồ, và nhu cầu schema để làm rõ)
  • chế biến rất nhanh
  • không dành cho đôi mắt con người (nhị phân dày đặc)

Tất cả đều có tốt hỗ trợ 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 một API công cộng, 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 để thực hiện. Cung cấp cả API công khai (hoặc thông qua tiêu đề, hoặc điểm cuối riêng biệt) cũng hoạt động tốt.

+5

XML là công việc nhiều hơn để giải mã, nhưng xác nhận có thể là một lợi thế lớn so với JSON. Xác nhận hợp lệ XML của bạn với 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 một lớp bổ sung mạnh mẽ. –

+0

Vì vậy, thật khó để có được hiệu suất tương đối nhanh trong JSON thành Protobuf? –

+7

XML cũng cho phép một phong cách tường thuật, trong đó văn bản được xen kẽ với các thẻ bao gồm như ' Đây là một phong cách tường thuật . Thẻ có thể xuất hiện ở giữa văn bản '. Đây là tính năng duy nhất của XML khi so sánh với JSON và Protocol Buffers. – Paul

Các vấn đề liên quan