メインコンテンツにスキップ

CBORエンコーダー / デコーダー

JSON値をCBOR(RFC 8949)バイナリデータとしてhexまたはBase64にエンコードするか、CBORバイトをJSONにデコードします。ブラウザ内で完全に動作します。

入力

出力

結果
役に立ちましたか?

ガイド

CBORとは

CBOR(Concise Binary Object Representation、RFC 8949)は、JSONと同じデータモデル(数字、文字列、配列、マップ、ブール値、null)に基づいて構築された二進ファイル形式ですが、テキストではなくコンパクトなバイトとしてエンコードされています。すべての値は短い型ヘッダー(メジャータイプ+長さ)の直後にその内容が続きます。そのため、句読点、引用符、ペイロードを埋めるための空白はありません。

このコンパクトさが、帯域幅または解析コストが重要である場所にCBORが現れる理由です。CoAP(制約されたIoTデバイス用のHTTPのようなプロトコル)、COSE(WebAuthnとFIDO2パスキーで使用される署名/暗号化されたCBORオブジェクト)、CWT(CBORウェブトークン、JWTのバイナリ兄弟)、Dockerのコンテンツアドレッス可能ストレージ、および無数の組み込みおよび低消費電力メッセージングプロトコル。JSONが「ネットワーク上の人間が読める可能なデータ」であるとすれば、CBORは同じデータモデルをバイト予算を持つネットワーク用に構築したものです。

使い方

  1. モードを選択します。
    • JSON → CBORをエンコード — JSON値(オブジェクト、配列、文字列、数字、ブール値、またはnull)を入力ボックスに貼り付けます。ツールはそれを解析してCBORでエンコードし、結果をHexまたはBase64として表示します(ドロップダウンから形式を選択します)。
    • CBOR → JSONをデコード — CBORバイトをhexまたはBase64として貼り付けます。形式は自動検出されます。ツールはバイトをデコードし、対応するJSON値を整形して表示します。
  2. 出力ボックスのボタンで結果をコピーまたはダウンロードします。
  3. 入力またはモード切り替え時にリアルタイムで処理が行われます。別の「実行」ステップはありません。

JSONとCBORの間でのマップ値の方法

  • 整数はCBORの最短形式を使用してエンコードされます。0~23の値は単一ヘッダーバイトに収まります。より大きな値は1/2/4/8バイトの後続長を使用し、自動的に選択されます。負の数はCBORの専用の負の整数メジャータイプを使用します。
  • 文字列はUTF-8テキスト文字列です(CBORメジャータイプ3)。
  • 配列オブジェクトはCBOR配列とマップにマップされます(メジャータイプ4と5)。オブジェクトキーは常にテキスト文字列としてエンコードされます。
  • **truefalsenull**はCBORの3バイト「シンプル値」エンコーディングを使用します。
  • 非整数値(小数点を含む、または安全な整数として大きすぎるもの)は8バイトの倍精度浮動小数点数としてエンコードされます。このツールはCBORのオプションの半精度/単精度ショートカットではなく、常に倍精度を使用して、サイズの利便性を損失のないラウンドトリッピングと交換します。
  • デコードは、JSONに存在しないCBORの概念(バイト文字列、タグ、「シンプル」値)も理解します。JSON互換のプレースホルダーで表現します(たとえば、バイト文字列は"h'a1b2c3'"にデコードされ、タグは{"$tag": N, "value": ...}にデコードされます)。失敗する代わりに。

よくある質問

通常の数字をエンコードするときに、サイズが予測不可能に変わることがあるのはなぜですか? CBORは常に整数の大きさに対して最短の有効なヘッダーを選択します。10は1バイト、1000は3バイト、100000は5バイトです。これはバグではなく、フォーマットのポイントです。

別のライブラリによって生成されたCBORをデコードできますか? はい。デコーディングは任意の整形式CBOR(メジャータイプの任意の組み合わせ、定確定または不確定の長さ、タグ)を処理します。このツール自体が生成したデータだけではなく。

不正な形式または切り詰められた入力はどうなりますか? 両方のモードは、明確なインラインエラーを報告します(無効なJSON、またはCBORバイトの何が間違っているかの正確な説明。たとえば、「予期しないCBORデータの終了」)。静かに失敗する代わりに。

私のデータはどこかにアップロードされますか? いいえ。エンコーディングとデコーディングは両方ともブラウザで完全に実行されます。貼り付けたものはサーバーに送信されません。

cborjsonbinaryencoderdecoderrfc8949iotcoap

このツールを使う他の方法

REST API

curl -X POST https://api.iotools.cloud/v1/tool/cbor-encoder-decoder \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "inputText": "[1,2,3]",
    "mode": "encode",
    "outputFormat": "hex"
  }'

ご自身のアカウントのキーに差し替えてください。ツールのフィールドがそのままリクエストボディになります——ラッパーはありません。

AIエージェントに依頼する

Use the IOTools `cbor-encoder-decoder` tool (CBOR Encoder / Decoder) on this input:

YOUR_INPUT_HERE

IOTools MCPサーバーに接続された任意のエージェントにこれを貼り付け、入力内容を追加してください。

埋め込みウィジェット

<iframe
  src="https://iotools.cloud/embed/cbor-encoder-decoder/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="CBORエンコーダー / デコーダー — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

ご自身のページに貼り付けるだけ——無料、キー不要、リンクを掲載するだけです。

1回あたりの費用5クレジットから

次の方法でも利用可能

ツールが気に入りましたか?広告をなくしましょう。

1回のお支払いでアカウントから広告が完全になくなります。サブスクリプションも追跡もありません。