Herramientas de bases de datos y SQL

conversor de DynamoDB JSON

Elige la dirección, la estructura de entrada y cómo representar los tipos especiales.

conversor de DynamoDB JSON

JSON de entrada

JSON de salida

El procesamiento ocurre en este navegador. La entrada no se envía a un servidor.

Opciones de conversión

Los marcadores propios $ddb conservan conjuntos y binarios. $ddb.M protege mapas reales con forma de marcador.

Límites: 500.000 caracteres de entrada, 50.000 nodos, 32 niveles y 2.000.000 de caracteres de salida.

Resultado desactualizado. Convierte la entrada actual.

Este conversor de DynamoDB JSON ayuda a preparar datos de prueba a partir de una respuesta de la CLI. Quitar S, N y M sin interpretar sus valores puede cambiar el significado: los números viajan como cadenas, pero siguen siendo números. Primero identifica si tienes un elemento, un lote o un valor de atributo.

Para convertir DynamoDB a JSON conviene separar el marshalling de un simple cambio de formato. Las listas mantienen el orden y los conjuntos exigen valores únicos. La selección explícita protege también los atributos que realmente se llaman Item o Items.

Por qué usar este conversor de DynamoDB JSON

Conservar los dígitos sin añadir comillas

El conversor de DynamoDB JSON lee los tokens numéricos sin pasar por JavaScript Number. Un identificador como 9007199254740993 sale como número JSON con todos sus dígitos. La precisión decimal y los exponentes se validan sin redondeo de coma flotante.

Una secuencia larga de bloques numéricos conserva sus colores y posiciones al atravesar la conversión.

Dejar una ruta de vuelta para los tipos

El modo de conservación añade marcadores $ddb a conjuntos y binarios. JSON plano genera matrices y cadenas Base64, con una lista de las rutas cuyo tipo cambia. Así puedes adaptar la salida al siguiente programa sin asumir que luego podrás recuperar los tipos originales.

Una colección conserva su distintivo de tipo en la ruta reversible; la ruta simple entrega una matriz sin distintivo.

Elegir el contenido y el formato del destino

01

Copiar el valor dentro de la respuesta

Para GetItem, copia el valor de Item y elige Elemento. Si tienes la matriz Items de una consulta, elige Lote. Un único {"N":"42"} corresponde a Valor único. No se deduce la estructura por el nombre de una propiedad ni se elimina metadata automáticamente.

02

Decidir si necesitas volver al origen

Mantén Conservar tipos si vas a convertir de vuelta aquí. Para un destino que solo admite JSON plano, revisa todas las rutas afectadas. En la dirección inversa, las matrices normales se convierten en L y las cadenas en S, aunque su contenido parezca un conjunto o un binario.

03

Exportar solo cuando el resultado esté actualizado

Cambiar el texto o cualquier opción bloquea inmediatamente la salida anterior. El modo automático espera 350 ms; en manual usa Convertir o Ctrl/Cmd + Enter. Ejemplo y Limpiar requieren una vista previa. Deshacer recupera entrada, resultado y estado de validez juntos.

Validación de atributos y estructuras anidadas

Los diez descriptores de tipo

Se admiten S, N, B, BOOL, NULL, M, L, SS, NS y BS. Las listas pueden mezclar tipos. Se conservan cadenas, binarios, listas y mapas vacíos. NULL se transforma en null sin borrar la propiedad que lo contiene.

Lotes con resultado íntegro

Una matriz JSON de mapas de atributos se procesa como lote. Un miembro inválido bloquea toda la exportación; no se omiten registros con errores. Los nombres reales S, N, Item e Items se conservan porque el usuario elige la estructura en lugar de depender de una detección automática.

Conjuntos comparados por valor

Los números se comprueban con hasta 38 dígitos significativos y el rango permitido. En NS, 1 y 1.0 son duplicados. SS compara cadenas y BS los bytes decodificados. Los conjuntos vacíos o repetidos producen errores; no se ordenan ni depuran silenciosamente.

Diagnóstico preciso y salida completa

Los errores muestran ruta, línea y columna, y resaltan la línea de entrada. Los cambios de tipos de la salida plana se muestran en grupos de 50 rutas. Copiar o descargar JSON siempre incluye el resultado completo y vigente, independientemente de cuántas rutas estén visibles.

Límites y diferencias entre representaciones

Marcadores propios, no formato de AWS
Conservar tipos usa {"$ddb":{"SS":["red"]}} y equivalentes para B, NS y BS en posiciones de valor. Un mapa real con solo la clave $ddb se escapa mediante $ddb.M y su mapa de atributos original. Antes de enviar AttributeValue a AWS debes convertir este formato en sentido inverso.
JSON plano no recuerda los conjuntos
Una matriz no distingue L, SS, NS y BS; una cadena con aspecto Base64 tampoco demuestra que fuera B. El modo plano señala los cambios y genera L y S al volver. En este modo, $ddb es una clave de objeto normal, no un marcador reservado.
La precisión también depende del lector posterior
El texto exportado conserva los números exactos, pero JSON.parse de JavaScript puede redondear enteros grandes al leerlos después. Se aceptan 38 dígitos significativos y valores absolutos no nulos desde 1e-130 hasta el máximo de 38 dígitos inferior a 1e126. La escritura decimal no JSON de N se normaliza de forma exacta.
Entrada estricta con límites de recursos
Máximo de 500.000 unidades UTF-16 y 50.000 nodos en la entrada, 32 niveles de contenedores y 2.000.000 de caracteres en la salida. Se rechazan claves duplicadas, conjuntos inválidos, Base64 no canónico y sustitutos Unicode aislados. No hay truncado ni reparación automática.
No comprueba una tabla concreta
No extrae envoltorios Item, Items o Streams ni lee directamente JSONL o líneas de exportación S3. No conecta con AWS, obtiene URL, sube archivos ni escribe datos. Tampoco valida claves, índices ni el tamaño real almacenado de 400 KB. Un valor vacío permitido fuera de una clave puede ser inválido dentro de ella.

Preguntas sobre el conversor de DynamoDB JSON

¿Cómo convierto DynamoDB JSON en un objeto JSON normal?

Selecciona DynamoDB → JSON y Elemento para un objeto cuyas propiedades contienen AttributeValue. Para {"S":"text"} aislado, elige Valor único. El modo de conservación añade marcadores solo donde JSON no puede representar directamente conjuntos o binarios.

¿Por qué un número grande se convierte en una cadena?

Algunas herramientas convierten los números grandes en cadenas para evitar el redondeo. Aquí se conserva el token numérico sin comillas y se comprueba con aritmética decimal. El texto resultante es exacto, pero el programa que lo lea debe usar un analizador que también preserve esa precisión.

¿Se pueden convertir conjuntos y valores binarios?

Sí. Se validan B, SS, NS y BS, y por defecto se conservan con marcadores explícitos. JSON plano los cambia por cadenas o matrices y enumera todas las rutas afectadas. A partir de ese resultado plano no se puede deducir con certeza el tipo especial original.

¿Se puede convertir una exportación completa de una tabla?

Un arreglo de mapas de atributos funciona en Lote si respeta los límites de entrada. Un archivo exportado por AWS S3 suele ser JSONL con envoltorios Item y no se acepta directamente. Prepara primero un lote de tamaño adecuado; un registro incorrecto detiene toda la conversión.

¿Cómo simplifico el JSON de una consulta DynamoDB en AWS CLI?

Copia el valor de Item o la matriz Items y selecciona la estructura correspondiente. La herramienta no quita metadata ni selecciona campos automáticamente. Para preparar datos para una API de bajo nivel, cambia a JSON → DynamoDB y convierte tu objeto normal en atributos tipados.

¿Falta explicar un caso de tipo?

Probar primero un registro con varios tipos

Prueba el conversor de DynamoDB JSON con el ejemplo incluido y elige la representación que espera la aplicación que recibirá el resultado.