Análisis sintáctico y visualización de datos CBOR
Una demostración de cómo analizar archivos en formato CBOR.
Este ejemplo muestra cómo utilizar directamente la clase QCborStreamReader para analizar el contenido CBOR. El programa cbordump lee contenido en formato CBOR de archivos o de la entrada estándar y vuelca el contenido decodificado a stdout en un formato legible por humanos. Puede generar una salida en notación de diagnóstico CBOR (que es similar a JSON), o puede producir una salida detallada en la que cada byte introducido se muestra con su codificación al lado.

La clase CborDumper
La clase CborDumper contiene un objeto QCborStreamReader que se inicializa utilizando el argumento QFile que se pasa al constructor de CborDumper. Basándose en los argumentos, la función dump llama a dumpOne() o dumpOneDetailed() para volcar el contenido a la salida estándar,
struct CborDumper { enum DumpOption { ShowCompact = 0x01, ShowWidthIndicators = 0x02, ShowAnnotated = 0x04 }; Q_DECLARE_FLAGS(DumpOptions, DumpOption) CborDumper(QFile *f, DumpOptions opts_); QCborError dump(); private: void dumpOne(int nestingLevel); void dumpOneDetailed(int nestingLevel); void printByteArray(const QByteArray &ba); void printWidthIndicator(quint64 value, char space = '\0'); void printStringWidthIndicator(quint64 value); QCborStreamReader reader; QByteArray data; QStack<quint8> byteArrayEncoding; qint64 offset = 0; DumpOptions opts; };
La función dumpOne()
Activando QCborStreamReader::type() se activa la impresión apropiada al tipo del valor actual en el flujo. Si el tipo es una matriz o un mapa, se itera sobre el contenido del valor, y para cada entrada se llama recursivamente a la función dumpOne() con un argumento de indentación superior. Si el tipo es una etiqueta, se imprime y se llama a dumpOne() una vez sin aumentar el argumento de sangría.
Función dumpOneDetailed()
Esta función vuelca tanto los bytes entrantes como el contenido decodificado en la misma línea. Utiliza funciones lambda para imprimir los bytes y el contenido descodificado, pero por lo demás tiene una estructura similar a dumpOne().
CborTagDescription
La tabla tagDescriptions, que describe las etiquetas CBOR disponibles, se genera automáticamente a partir de un archivo XML disponible en el sitio web iana.org. Cuando dumpOneDetailed() informa de una etiqueta, utiliza su descripción de esta tabla.
Véase también QCborStreamReader y CBOR Support in Qt.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.