Konverter DynamoDB JSON
Konversi JSON biasa ke format attribute-value DynamoDB dan kembali — seketika, di browser Anda. Tidak ada yang dikirim ke server.
JSON biasa vs. DynamoDB JSON
Format wire tingkat rendah DynamoDB menandai setiap nilai dengan tipenya. Di mana aplikasi Anda melihat { "age": 36 }, API melihat { "age": { "N": "36" } }. Bentuk attribute-value itulah yang dicetak AWS CLI, yang muncul di log CloudWatch dan rekaman DynamoDB Streams, dan yang Anda tempel ke dalam panggilan PutItem tingkat rendah. Document client SDK menyembunyikannya, jadi kedua format itu terus berpapasan saat debugging.
Konverter ini menggunakan library marshalling yang sama dengan yang dipakai AWS SDK, sehingga outputnya sama persis dengan yang akan dihasilkan SDK. Ia berjalan sepenuhnya di browser Anda — library dimuat sesuai kebutuhan dan data Anda tidak pernah meninggalkan halaman — yang membuatnya aman untuk menempel Item asli dari tabel produksi.
Dua edge case ditangani secara eksplisit. Angka di atas rentang integer aman JavaScript dipertahankan sebagai string alih-alih dibulatkan secara diam-diam, dan attribute value yang rusak — tipe angka yang membawa teks non-numerik, misalnya — memicu error yang jelas alih-alih dipaksakan secara diam-diam. Tujuannya adalah konversi yang akurat yang dapat Anda percaya, bukan pendekatan yang lossy.
Baru mengenal tag tipe? Tipe data DynamoDB memandu setiap tipe attribute-value dengan contoh.
Pertanyaan yang sering diajukan
Apa itu DynamoDB JSON?
DynamoDB JSON (format attribute-value) membungkus setiap nilai dalam objek satu-key yang menamai tipenya: string adalah { "S": "abc" }, angka adalah { "N": "5" }, list adalah { "L": [...] }, map adalah { "M": {...} }. API DynamoDB tingkat rendah dan tools seperti AWS CLI menggunakan bentuk ini, sementara document client SDK dan sebagian besar kode aplikasi menggunakan JSON biasa. Konverter ini menerjemahkan antara keduanya.
Mengapa angka besar saya menjadi string?
DynamoDB menyimpan angka sebagai tipe desimal 38 digit tanpa batas presisi, tetapi JavaScript kehilangan presisi di atas 2^53. Agar tetap lossless, angka yang lebih besar dari rentang aman tersebut dibawa sebagai string saat mengonversi DynamoDB JSON ke JSON biasa. Menempel angka semacam itu sebagai angka JSON-biasa polos justru memicu error, karena angka itu sudah kehilangan presisi sebelum tool ini sempat melihatnya.
Bisakah saya mengonversi nilai Set dan Binary?
Dari DynamoDB JSON ke JSON biasa, ya — sebuah String/Number/Binary Set menjadi sebuah array dan nilai Binary menjadi string base64. Arah sebaliknya tidak dapat menyimpulkannya: JSON biasa tidak punya tipe Set, jadi sebuah array selalu dikonversi menjadi List (L). Tulis Set dan Binary langsung di sisi DynamoDB JSON.
Apakah data saya meninggalkan browser?
Tidak. Konversi berjalan sepenuhnya di sisi klien menggunakan library marshalling resmi AWS, yang dimuat sesuai kebutuhan di browser Anda. Tidak ada yang Anda tempel dikirim ke server.