Codec CBOR / MessagePack
Đầu vào JSON
Đầu ra Hex
Chi tiết kỹ thuật
Cách Trình chuyển đổi CBOR & MessagePack hoạt động
Công cụ làm gì
Công cụ này mã hóa dữ liệu JSON sang các định dạng nhị phân CBOR (Concise Binary Object Representation) hoặc MessagePack, và giải mã các payload nhị phân trở lại JSON dễ đọc. Công cụ hiển thị các byte hex thô cùng với cấu trúc đã giải mã, giúp dễ dàng kiểm tra các mã hóa nhị phân gọn nhẹ được dùng trong môi trường hạn chế tài nguyên. Cả hai chiều mã hóa đều hỗ trợ đối tượng lồng nhau, mảng và các kiểu JSON tiêu chuẩn.
Các trường hợp sử dụng phổ biến cho lập trình viên
Các nhà phát triển IoT dùng công cụ này để kiểm tra payload CBOR từ thông điệp CoAP hoặc token được ký COSE mà không cần viết mã giải tuần tự. Kỹ sư backend gỡ lỗi các frame WebSocket được mã hóa MessagePack, buffer giao thức Redis hoặc payload RPC bằng cách dán hex dump và xem JSON đã giải mã. Công cụ cũng hữu ích để so sánh kích thước payload giữa JSON, CBOR và MessagePack nhằm chọn định dạng truyền tải hiệu quả nhất cho các hệ thống bị giới hạn băng thông.
Định dạng dữ liệu, kiểu hoặc biến thể
CBOR (RFC 8949) là một định dạng nhị phân tự mô tả, được thiết kế để có kích thước mã nhỏ và kích thước thông điệp nhỏ, được áp dụng rộng rãi trong các tiêu chuẩn IoT như LwM2M và FIDO2/WebAuthn. MessagePack là một cơ chế tuần tự hóa nhị phân tương tự, hướng tới độ gọn tối đa trong khi vẫn không cần schema, thường được dùng bởi Redis, Fluentd và nhiều framework RPC. Cả hai định dạng đều gọn hơn JSON nhưng đánh đổi khả năng đọc của con người để lấy hiệu quả.
Các lỗi thường gặp và trường hợp biên
CBOR hỗ trợ các kiểu dữ liệu mà JSON không thể biểu diễn một cách tự nhiên, như chuỗi byte, tag và container có độ dài không xác định — việc round-trip chúng qua JSON sẽ làm mất thông tin kiểu. MessagePack phân biệt giữa byte thô và chuỗi UTF-8, trong khi JSON gộp chúng thành một kiểu chuỗi duy nhất. Độ chính xác số nguyên có thể khác nhau: cả hai định dạng đều hỗ trợ số nguyên có độ dài tùy ý, nhưng khi giải mã sang JavaScript có thể mất độ chính xác vượt quá Number.MAX_SAFE_INTEGER.
Khi nào nên dùng công cụ này thay vì viết mã
Hãy dùng công cụ trên trình duyệt này để kiểm tra nhanh các payload nhị phân được thu từ lưu lượng mạng, gỡ lỗi thông điệp thiết bị IoT, hoặc so sánh nhanh kích thước mã hóa. Đối với việc tuần tự hóa trong môi trường production trong mã ứng dụng, hãy dùng các thư viện chuyên dụng như cbor2 (Python), cbor-x (Node.js) hoặc msgpack cho ngôn ngữ của bạn, vì chúng xử lý streaming, xác thực schema và ánh xạ kiểu đúng cách mà một công cụ trên trình duyệt không thể cung cấp.