Convertidor de CBOR a JSON

CBOR a JSON

Acerca de CBOR

¿Qué es CBOR?

CBOR (RFC 8949) es un formato binario de datos del IETF. Este convertidor usa mapas estándar en lugar de extensiones de registros propias de una librería y conserva cadenas de bytes, enteros grandes, flotantes, arrays, mapas con claves no textuales, fechas, valores undefined y etiquetas semánticas mediante envoltorios JSON.

¿Cuándo usar CBOR?

Usa CBOR cuando los sistemas necesiten valores tipados que JSON no ofrece, pero acuerden cómo interpretar las etiquetas semánticas y cualquier perfil de codificación determinista. Este convertidor no garantiza bytes canónicos; conserva sus envoltorios $binary, $map, $cborTag, $date, $undefined y de enteros al editar JSON.

CBOR en JavaScript

import { encode, decode } from 'cbor-x';

const value = { hello: 'world' };
const bytes = encode(value);
const hex = Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('');

console.log(hex);
// Output: a16568656c6c6f65776f726c64

console.log(decode(bytes));
// Output: { hello: 'world' }
				

CBOR en Go

package main

import (
	"fmt"

	"github.com/fxamacker/cbor/v2"
)

func main() {
	value := map[string]any{"hello": "world"}
	encoded, _ := cbor.Marshal(value)
	fmt.Printf("%x\n", encoded)
	// Output: a16568656c6c6f65776f726c64

	var decoded map[string]any
	_ = cbor.Unmarshal(encoded, &decoded)
	fmt.Println(decoded["hello"])
	// Output: world
}
				

CBOR en PHP

<?php
require 'vendor/autoload.php';

use CBOR\Decoder;
use CBOR\MapObject;
use CBOR\StringStream;
use CBOR\TextStringObject;

$value = MapObject::create()
	->add(TextStringObject::create('hello'), TextStringObject::create('world'));

$encoded = (string) $value;
echo bin2hex($encoded) . PHP_EOL;
// Output: a16568656c6c6f65776f726c64

$decoded = Decoder::create()->decode(StringStream::create($encoded))->normalize();
echo $decoded['hello'] . PHP_EOL;
// Output: world