Herramienta gratuita

Conversor de DynamoDB JSON

Convierte JSON plano al formato de atributo-valor de DynamoDB y al revés: al instante, en tu navegador. No se envía nada a un servidor.

JSON plano
{
  "pk": "USER#1234",
  "sk": "PROFILE",
  "name": "Ada Lovelace",
  "age": 36,
  "scores": [10, 20, 30],
  "active": true
}

Los String Sets, Number Sets, Binary Sets y los valores Binary no se pueden expresar en JSON plano: un array JSON siempre se convierte en una List (L). Esos tipos solo aparecen al convertir DynamoDB JSON de vuelta a JSON plano.

DynamoDB JSON
Cargando el conversor…

JSON plano frente a DynamoDB JSON

El formato de transporte de bajo nivel de DynamoDB etiqueta cada valor con su tipo. Donde tu aplicación ve { "age": 36 }, la API ve { "age": { "N": "36" } }. Esa forma de atributo-valor es la que imprime el AWS CLI, la que aparece en los logs de CloudWatch y en los registros de DynamoDB Streams, y la que pegas en una llamada de bajo nivel a PutItem. El document client del SDK la oculta, así que los dos formatos se cruzan constantemente durante la depuración.

Este conversor usa la misma librería de marshalling que usa el AWS SDK, así que la salida coincide exactamente con lo que produciría el SDK. Se ejecuta enteramente en tu navegador —la librería se carga bajo demanda y tus datos nunca salen de la página—, lo que hace seguro pegar Items reales de una tabla de producción.

Se gestionan explícitamente dos casos límite. Los números por encima del rango de enteros seguros de JavaScript se conservan como cadenas en lugar de redondearse en silencio, y los valores de atributo malformados —un tipo numérico que lleva texto no numérico, por ejemplo— provocan un error claro en lugar de convertirse silenciosamente. El objetivo es una conversión fiel en la que puedas confiar, no una aproximación con pérdidas.

¿No conoces las etiquetas de tipo? Tipos de datos de DynamoDB recorre cada tipo de atributo-valor con ejemplos.

Preguntas frecuentes

¿Qué es DynamoDB JSON?

DynamoDB JSON (el formato de atributo-valor) envuelve cada valor en un objeto de una sola clave que nombra su tipo: una cadena es { "S": "abc" }, un número es { "N": "5" }, una lista es { "L": [...] }, un mapa es { "M": {...} }. La API de bajo nivel de DynamoDB y herramientas como el AWS CLI usan esta forma, mientras que el document client del SDK y la mayoría del código de aplicación usan JSON plano. Este conversor traduce entre ambos.

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

DynamoDB almacena los números como un tipo decimal de 38 dígitos sin límite de precisión, pero JavaScript pierde precisión por encima de 2^53. Para no perder datos, un número mayor que ese rango seguro se transporta como una cadena al convertir DynamoDB JSON a JSON plano. Pegar ese número como un número JSON plano sin más provoca un error, porque ya habría perdido precisión antes de que esta herramienta lo viera.

¿Puedo convertir Sets y valores Binary?

De DynamoDB JSON a JSON plano, sí: un String/Number/Binary Set se convierte en un array y un valor Binary se convierte en una cadena base64. La dirección inversa no puede inferirlos: el JSON plano no tiene un tipo Set, así que un array siempre se convierte en una List (L). Crea los Sets y los Binary directamente en el lado de DynamoDB JSON.

¿Mis datos salen del navegador?

No. La conversión se ejecuta enteramente en el lado del cliente usando la librería oficial de marshalling de AWS, cargada bajo demanda en tu navegador. Nada de lo que pegas se envía a un servidor.

Trabaja con DynamoDB sin la Consola

DynoTable es un cliente de escritorio rápido para DynamoDB: explora tablas, ejecuta consultas estilo SQL y edita Items localmente.