Conversor de DynamoDB JSON
Converta JSON puro para o formato attribute-value do DynamoDB e vice-versa — na hora, no seu navegador. Nada é enviado a um servidor.
JSON puro vs. DynamoDB JSON
O formato de transporte de baixo nível do DynamoDB marca cada valor com seu tipo. Onde sua aplicação vê { "age": 36 }, a API vê { "age": { "N": "36" } }. Esse formato attribute-value é o que o AWS CLI imprime, o que aparece nos logs do CloudWatch e nos registros do DynamoDB Streams, e o que você cola em uma chamada PutItem de baixo nível. O document client do SDK o esconde, então os dois formatos cruzam o tempo todo durante a depuração.
Este conversor usa a mesma biblioteca de marshalling que o AWS SDK usa, então a saída corresponde exatamente ao que o SDK produziria. Ele roda inteiramente no seu navegador — a biblioteca é carregada sob demanda e seus dados nunca saem da página — o que torna seguro colar itens reais de uma tabela de produção.
Dois casos extremos são tratados explicitamente. Números acima da faixa segura de inteiros do JavaScript são preservados como strings em vez de arredondados silenciosamente, e valores de atributo malformados — um tipo número carregando texto não numérico, por exemplo — geram um erro claro em vez de serem convertidos sem aviso. O objetivo é uma conversão fiel em que você possa confiar, não uma aproximação com perdas.
Novo nas tags de tipo? tipos de dados do DynamoDB percorre cada tipo attribute-value com exemplos.
Perguntas frequentes
O que é DynamoDB JSON?
O DynamoDB JSON (o formato attribute-value) envolve cada valor em um objeto de uma única chave que nomeia o seu tipo: uma string é { "S": "abc" }, um número é { "N": "5" }, uma lista é { "L": [...] }, um mapa é { "M": {...} }. A API de baixo nível do DynamoDB e ferramentas como o AWS CLI usam esse formato, enquanto o document client do SDK e a maior parte do código de aplicação usam JSON puro. Este conversor traduz entre os dois.
Por que meu número grande vira uma string?
O DynamoDB armazena números como um tipo decimal de 38 dígitos sem limite de precisão, mas o JavaScript perde precisão acima de 2^53. Para não haver perda, um número maior que essa faixa segura é carregado como string ao converter DynamoDB JSON para JSON puro. Colar um número desses como um número JSON puro cru gera um erro, porque ele já teria perdido precisão antes mesmo desta ferramenta vê-lo.
Posso converter Sets e valores binários?
De DynamoDB JSON para JSON puro, sim — um String/Number/Binary Set vira um array e um valor binário vira uma string base64. A direção inversa não consegue inferi-los: o JSON puro não tem tipo Set, então um array sempre é convertido em uma List (L). Escreva Sets e binários diretamente no lado do DynamoDB JSON.
Meus dados saem do navegador?
Não. A conversão roda inteiramente no lado do cliente usando a biblioteca oficial de marshalling da AWS, carregada sob demanda no seu navegador. Nada do que você cola é enviado a um servidor.