Κωδικοποιητής / Αποκωδικοποιητής CBOR / MessagePack
Είσοδος JSON
Έξοδος Hex
Τεχνικές λεπτομέρειες
Πώς λειτουργεί ο μετατροπέας CBOR & MessagePack
Τι κάνει το εργαλείο
Αυτό το εργαλείο κωδικοποιεί δεδομένα JSON σε δυαδικές μορφές CBOR (Concise Binary Object Representation) ή MessagePack και αποκωδικοποιεί δυαδικά payloads πίσω σε αναγνώσιμο από άνθρωπο JSON. Εμφανίζει τα ακατέργαστα δεκαεξαδικά bytes δίπλα στη δομή που προκύπτει από την αποκωδικοποίηση, διευκολύνοντας την επιθεώρηση συμπαγών δυαδικών κωδικοποιήσεων που χρησιμοποιούνται σε περιβάλλοντα με περιορισμούς. Και οι δύο κατευθύνσεις κωδικοποίησης υποστηρίζουν ένθετα αντικείμενα, πίνακες και τους τυπικούς τύπους JSON.
Συνηθισμένες περιπτώσεις χρήσης για προγραμματιστές
Οι προγραμματιστές IoT χρησιμοποιούν αυτό το εργαλείο για να επιθεωρούν payloads CBOR από μηνύματα CoAP ή tokens υπογεγραμμένα με COSE χωρίς να γράφουν κώδικα αποσειριοποίησης. Οι μηχανικοί backend αποσφαλματώνουν πλαίσια WebSocket κωδικοποιημένα σε MessagePack, buffers πρωτοκόλλου Redis ή payloads RPC επικολλώντας hex dumps και βλέποντας το αποκωδικοποιημένο JSON. Είναι επίσης χρήσιμο για τη σύγκριση μεγεθών payload μεταξύ JSON, CBOR και MessagePack, ώστε να επιλεγεί η πιο αποδοτική μορφή μεταφοράς για συστήματα με περιορισμένο εύρος ζώνης.
Μορφές δεδομένων, τύποι ή παραλλαγές
Το CBOR (RFC 8949) είναι μια αυτοπεριγραφική δυαδική μορφή σχεδιασμένη για μικρό μέγεθος κώδικα και μικρό μέγεθος μηνύματος, ευρέως υιοθετημένη σε πρότυπα IoT όπως τα LwM2M και FIDO2/WebAuthn. Το MessagePack είναι μια παρόμοια δυαδική σειριοποίηση που στοχεύει να είναι όσο το δυνατόν πιο συμπαγής, παραμένοντας χωρίς σχήμα, και χρησιμοποιείται συχνά από το Redis, το Fluentd και πολλά πλαίσια RPC. Και οι δύο μορφές είναι πιο συμπαγείς από το JSON, αλλά θυσιάζουν την αναγνωσιμότητα για τον άνθρωπο υπέρ της αποδοτικότητας.
Συνηθισμένα λάθη και οριακές περιπτώσεις
Το CBOR υποστηρίζει τύπους δεδομένων που το JSON δεν μπορεί να αναπαραστήσει εγγενώς, όπως byte strings, tags και κοντέινερ απροσδιόριστου μήκους — η μετατροπή τους με επιστροφή μέσω JSON θα χάσει πληροφορία τύπου. Το MessagePack διακρίνει μεταξύ ακατέργαστων bytes και συμβολοσειρών UTF-8, τα οποία το JSON συγχωνεύει σε έναν ενιαίο τύπο συμβολοσειράς. Η ακρίβεια των ακεραίων μπορεί να διαφέρει: και οι δύο μορφές υποστηρίζουν ακέραιους αυθαίρετου μήκους, αλλά η αποκωδικοποίηση σε JavaScript μπορεί να χάσει ακρίβεια πέρα από το Number.MAX_SAFE_INTEGER.
Πότε να χρησιμοποιήσετε αυτό το εργαλείο έναντι κώδικα
Χρησιμοποιήστε αυτό το εργαλείο στον browser για ad-hoc επιθεώρηση δυαδικών payloads που έχουν καταγραφεί από κίνηση δικτύου, για αποσφαλμάτωση μηνυμάτων συσκευών IoT ή για γρήγορη σύγκριση μεγεθών κωδικοποίησης. Για σειριοποίηση παραγωγής στον κώδικα της εφαρμογής, χρησιμοποιήστε εξειδικευμένες βιβλιοθήκες όπως cbor2 (Python), cbor-x (Node.js) ή msgpack για τη γλώσσα σας, οι οποίες χειρίζονται streaming, επικύρωση σχήματος και σωστή αντιστοίχιση τύπων που ένα εργαλείο browser δεν μπορεί να προσφέρει.