DynamoDB-JSON-Konverter
Konvertiere reines JSON in das Attribute-Value-Format von DynamoDB und zurück — sofort, in deinem Browser. Nichts wird an einen Server gesendet.
Reines JSON vs. DynamoDB JSON
Das Low-Level-Wire-Format von DynamoDB versieht jeden Wert mit seinem Typ. Wo deine Anwendung { "age": 36 } sieht, sieht die API { "age": { "N": "36" } }. Diese Attribute-Value-Form gibt die AWS CLI aus, sie erscheint in CloudWatch-Logs und DynamoDB-Streams-Datensätzen, und sie fügst du in einen Low-Level-PutItem-Aufruf ein. Der Document-Client des SDK verbirgt sie, sodass sich die beiden Formate beim Debugging ständig kreuzen.
Dieser Konverter verwendet dieselbe Marshalling-Bibliothek wie das AWS SDK, sodass die Ausgabe genau dem entspricht, was das SDK erzeugen würde. Er läuft vollständig in deinem Browser — die Bibliothek wird bei Bedarf geladen und deine Daten verlassen nie die Seite —, was es sicher macht, echte Items aus einer Produktionstabelle einzufügen.
Zwei Sonderfälle werden explizit behandelt. Zahlen oberhalb des sicheren Integer-Bereichs von JavaScript werden als Strings bewahrt, statt stillschweigend gerundet zu werden, und fehlerhafte Attributwerte — etwa ein Number-Typ, der nicht-numerischen Text trägt — lösen einen klaren Fehler aus, statt stillschweigend umgewandelt zu werden. Das Ziel ist eine getreue Konvertierung, der du vertrauen kannst, keine verlustbehaftete Näherung.
Neu bei den Typ-Tags? DynamoDB-Datentypen führt anhand von Beispielen durch jeden Attribute-Value-Typ.
Häufig gestellte Fragen
Was ist DynamoDB JSON?
DynamoDB JSON (das Attribute-Value-Format) hüllt jeden Wert in ein Objekt mit einem Schlüssel, das seinen Typ benennt: ein String ist { "S": "abc" }, eine Zahl ist { "N": "5" }, eine Liste ist { "L": [...] }, eine Map ist { "M": {...} }. Die Low-Level-DynamoDB-API und Tools wie die AWS CLI verwenden diese Form, während der SDK-Document-Client und der meiste Anwendungscode reines JSON verwenden. Dieser Konverter übersetzt zwischen beiden.
Warum wird meine große Zahl zu einem String?
DynamoDB speichert Zahlen als 38-stelligen Dezimaltyp ohne Genauigkeitslimit, aber JavaScript verliert Genauigkeit oberhalb von 2^53. Um verlustfrei zu bleiben, wird eine Zahl, die größer als dieser sichere Bereich ist, beim Konvertieren von DynamoDB JSON in reines JSON als String geführt. Wenn du eine solche Zahl stattdessen als nackte Zahl im reinen JSON einfügst, wird ein Fehler ausgelöst, weil sie bereits an Genauigkeit verloren hätte, bevor dieses Tool sie überhaupt gesehen hat.
Kann ich Sets und Binärwerte konvertieren?
Von DynamoDB JSON zu reinem JSON ja — ein String/Number/Binary Set wird zu einem Array und ein Binärwert zu einem base64-String. Die umgekehrte Richtung kann sie nicht ableiten: Reines JSON hat keinen Set-Typ, daher wird ein Array immer zu einer List (L) konvertiert. Erstelle Sets und Binärwerte direkt auf der DynamoDB-JSON-Seite.
Verlassen meine Daten den Browser?
Nein. Die Konvertierung läuft vollständig clientseitig mit der offiziellen AWS-Marshalling-Bibliothek, die bei Bedarf in deinem Browser geladen wird. Nichts, was du einfügst, wird an einen Server gesendet.