DynamoDB JSON Converter

Paste DynamoDB typed AttributeValue JSON or plain JSON, then marshal, unmarshal, or auto-detect the direction locally in your browser.

Try:
Converted JSON

About this tool

DynamoDB exposes item data as typed AttributeValue JSON: strings are wrapped as {"S":"..."}, numbers as {"N":"30"}, booleans as {"BOOL":true}, lists as {"L":[...]}, maps as {"M":{...}}, and sets as SS, NS, or BS. That shape is exact and useful for AWS APIs, but it is noisy when you just want to read or edit the data. This converter moves between the AWS typed shape and ordinary JSON.

Use Plain JSON → DynamoDB JSON when you are preparing an item for an AWS CLI, SDK, or test fixture. Use DynamoDB JSON → Plain JSON when you copied an item from a stream event, export, CLI response, or debugging log and want a readable object. Auto-detect treats input that already looks like DynamoDB typed JSON as typed input and converts it back to plain JSON; otherwise it marshals the plain JSON into typed AttributeValues.

The conversion is deterministic and local. There is no AWS SDK call, network request, credential lookup, or table access — it only reshapes the JSON you paste.

Worked examples

Plain JSON input:

{"id":"user#1","age":30,"active":true}

DynamoDB JSON output:

{
  "id": { "S": "user#1" },
  "age": { "N": "30" },
  "active": { "BOOL": true }
}

DynamoDB JSON input:

{"roles":{"SS":["admin","user"]},"score":{"N":"9.5"}}

Plain JSON output:

{
  "roles": ["admin", "user"],
  "score": 9.5
}

Limits and edge cases

FAQ

What is DynamoDB typed JSON?

It is the AttributeValue representation used by DynamoDB APIs and many AWS CLI examples. Every value carries a type tag, such as S for string, N for a number string, BOOL for boolean, NULL for null, M for map, and L for list.

Can it handle DynamoDB sets?

Yes. SS, NS, and BS unmarshal to plain JSON arrays. When converting plain JSON back to DynamoDB JSON, arrays become L lists, because plain JSON does not say whether an array was meant to be a DynamoDB set.

Does this connect to my AWS account?

No. It is a local JSON reshaper. It does not call DynamoDB, read credentials, or fetch table metadata. Paste only the JSON you want to convert.

Why did my big number change when converting from DynamoDB JSON?

DynamoDB stores numbers as strings, while plain JSON numbers are numeric values. This tool parses valid N strings into JSON numbers. Extremely large integers or high-precision decimals may be limited by JSON number handling in the tools that read the output; keep the typed form if exact arbitrary precision matters.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool dynamodb-json-converter '{"id":"user#1","age":30,"active":true}'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/dynamodb-json-converter/?input=%7B%22id%22%3A%22user%231%22%2C%22age%22%3A30%2C%22active%22%3Atrue%7D&direction=auto&pretty=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.