2012-06-29 29 views

Trả lời

15

ASN.1 và JSON không hoàn toàn so sánh được. JSON là một định dạng dữ liệu. ASN.1 là một ngôn ngữ lược đồ cộng với nhiều bộ quy tắc mã hóa, mỗi quy tắc trong số đó tạo ra các định dạng dữ liệu khác nhau cho một lược đồ đã cho. Vì vậy, câu hỏi ban đầu phần nào song song với câu hỏi "Lược đồ XML so với XML: khi nào nó thích hợp để sử dụng chúng?" So sánh công bằng hơn giữa ASN.1 và JSON Schema.

Điều đó nói rằng, một vài điểm cần cân nhắc:

  • ASN.1 có quy tắc mã hóa nhị phân. Xem xét liệu mã hóa nhị phân hay văn bản có thích hợp hơn cho ứng dụng của bạn hay không.
  • ASN.1 cũng có các quy tắc mã hóa XML. Bạn có thể chọn sử dụng mã hóa dựa trên văn bản bằng cách sử dụng ASN.1, nếu bạn muốn.
  • ASN.1 cho phép các quy tắc mã hóa khác được phát triển. Trên thực tế, chúng tôi đã chỉ định quy tắc của riêng mình (không được chuẩn hóa) để mã hóa ASN.1 thành JSON. Tôi viết blog về điều này trên trang web công ty của chúng tôi here
  • Giống như với Lược đồ XML, các công cụ tồn tại để biên dịch ASN.1. Đây thường được gọi là công cụ ràng buộc dữ liệu. Đầu ra trình biên dịch bao gồm các cấu trúc dữ liệu để giữ dữ liệu của bạn và mã để mã hóa/giải mã thành/từ các mã hóa khác nhau (nhị phân, XML, hoặc, nếu sử dụng công cụ của chúng tôi, JSON).
  • Tôi không chắc chắn, nếu có, công cụ ràng buộc dữ liệu tồn tại cho JSON Schema. Tôi cũng không chắc chắn về cách lược đồ JSON trưởng thành/ổn định, trong khi ASN.1 khá trưởng thành và ổn định.
  • Chọn giữa JSON Schema và ASN.1, lưu ý rằng JSON Schema được ràng buộc với JSON, trong khi ASN.1 không bị ràng buộc với bất kỳ biểu diễn cụ thể nào.
2

Bạn có thể sử dụng ASN.1 bất kể bạn cần serialize các thư có thể chuyển đến người nhận bằng C, C++, C#, Java hay bất kỳ ngôn ngữ lập trình nào khác với bộ mã hóa/giải mã ASN.1. ASN.1 cũng cung cấp nhiều quy tắc mã hóa có lợi ích trong các trường hợp khác nhau. Ví dụ, DER được sử dụng khi mã hóa chuẩn là rất quan trọng, như trong chứng chỉ kỹ thuật số, trong khi PER được sử dụng khi băng thông rất quan trọng như trong giao thức di động và E-XER được sử dụng khi bạn không quan tâm đến băng thông và muốn để hiển thị một bảng mã trong XML để xử lý maniplulation trong một trình duyệt hoặc trao đổi thông điệp với một công cụ Lược đồ XML.

Lưu ý rằng với công cụ ASN.1 tốt, bạn không phải thay đổi mã ứng dụng của mình để chuyển đổi giữa các quy tắc mã hóa ASN.1 này. Một cuộc gọi hàm đơn giản có thể chọn các quy tắc mã hóa bạn muốn sử dụng.

+2

Java phải làm gì với JSON? –

+0

Sự hiểu biết của tôi là bởi JSON, bạn có nghĩa là Ký hiệu đối tượng JavaScript. Bạn đang nói với tôi điều này không có gì để làm với Java mặc dù Java là một phần của tên của nó? –

+11

Java chính xác không liên quan gì đến JSON. – megazord

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