2012-06-29 15 views

Odpowiedz

15

ASN.1 i JSON nie są ściśle porównywalne. JSON to format danych. ASN.1 jest językiem schematu oraz wieloma zestawami reguł kodowania, z których każdy wytwarza różne formaty danych dla danego schematu. Tak więc pierwotne pytanie nieco przypomina pytanie "Schemat XML a XML: kiedy jest właściwe, aby z nich korzystać?" Bardziej sprawiedliwe porównanie dotyczyłoby schematu ASN.1 i JSON.

Powiedział, że kilka punktów do rozważenia:

  • ASN.1 ma binarnych reguł kodowania. Zastanów się, czy kodowanie binarne lub tekstowe jest lepsze dla twojej aplikacji.
  • ASN.1 ma również reguły kodowania XML. Możesz zdecydować się na kodowanie tekstowe za pomocą ASN.1, jeśli chcesz.
  • ASN.1 pozwala opracować inne reguły kodowania. W rzeczywistości określiliśmy własne (niestandardowe) reguły do ​​kodowania ASN.1 do JSON. Blogowałem o tym na naszej stronie firmy here
  • Podobnie jak w przypadku schematu XML, istnieją narzędzia do kompilowania ASN.1. Są one powszechnie nazywane narzędziami do wiązania danych. Dane wyjściowe kompilatora składają się ze struktur danych do przechowywania danych oraz kodu do kodowania/dekodowania do/z różnych kodowań (binarnych, XML lub, jeśli korzystamy z naszego narzędzia, JSON).
  • Nie jestem pewien, jakie istnieją, jeśli istnieją, narzędzia wiążące dane dla JSON Schema. Nie jestem również pewien, jak dojrzały/stabilny jest schemat JSON, podczas gdy ASN.1 jest dość dojrzały i stabilny.
  • Wybierając schemat JSON i ASN.1, zwróć uwagę, że schemat JSON jest powiązany z JSON, a ASN.1 nie jest związany z żadną konkretną reprezentacją.
2

Możesz używać ASN.1 niezależnie od tego, czy chcesz serializować wiadomości, które mogą trafić do odbiorcy za pomocą C, C++, C#, Java, lub dowolnego innego języka programowania z silnikiem kodera/dekodera ASN.1. ASN.1 zapewnia także wiele reguł kodowania, które mają zalety w różnych okolicznościach. Na przykład DER jest używany, gdy kluczowe znaczenie ma kodowanie kanoniczne, na przykład w certyfikatach cyfrowych, a PER jest używany, gdy przepustowość jest krytyczna, na przykład w protokołach komórkowych, a E-XER jest używany, gdy nie zależy Ci na przepustowości i chciałbyś aby wyświetlić kodowanie w języku XML w celu manipulowania w przeglądarce lub wymiany wiadomości za pomocą mechanizmu XML Schema.

Należy pamiętać, że przy użyciu dobrego narzędzia ASN.1 nie trzeba zmieniać kodu aplikacji, aby przełączać się pomiędzy tymi regułami kodowania ASN.1. Proste wywołanie funkcji może wybrać reguły kodowania, których chcesz użyć.

+2

Co Java ma wspólnego z JSON? –

+0

Rozumiem, że JSON miał na myśli JavaScript Object Notation. Czy mówisz mi, że to nie ma nic wspólnego z Javą, mimo że Java jest częścią jej nazwy? –

+11

To prawda, Java nie ma nic wspólnego z JSON. – megazord

Powiązane problemy