Cara Membaca Ekspor JSON Day One Secara Offline Tanpa Mengubahnya
Untuk memeriksa ekspor Day One, biarkan ZIP yang diunduh tetap utuh, buat salinan kerja terpisah, ekstrak secara lokal, dan buka file `.json` dengan editor teks atau alat JSON standar Python. ZIP adalah kontainer; JSON adalah teks terstruktur; setiap folder media menyimpan file terpisah. Anda dapat memeriksa apakah sintaksis JSON valid dan menemukan nilai kandidat teks, tanggal, atau lampiran tanpa berasumsi tentang arti kunci yang tidak terdokumentasi. JSON yang dapat dibaca saja tidak membuktikan bahwa setiap file media ada atau bahwa arsip tersebut dapat dipulihkan.
Pertama, bedakan antara ZIP, JSON, dan media
Day One mendeskripsikan ekspor JSON-nya sebagai sebuah ZIP yang berisi file `.json` dengan entri-entri yang dipilih; media dapat disertakan dalam folder untuk foto, video, audio, dan PDF. Panduan tersebut menyatakan bahwa JSON ditujukan untuk mengimpor kembali data yang diarsipkan dan dapat dibaca oleh Day One serta aplikasi yang mendukung file JSON Day One. [Panduan ekspor Day One](https://dayoneapp.com/guides/tips-and-tutorials/exporting-entries/) tidak mendefinisikan skema bidang-demi-bidang yang lengkap, jadi jangan menganggap nama file atau kunci yang terlihat familier sebagai bukti maknanya.
Biarkan ZIP asli tidak tersentuh. Gunakan alat arsip sistem operasi Anda untuk mengekstrak salinannya ke dalam folder lokal baru. Hindari mengunggah jurnal pribadi ke pemformat online. Sebelum membuka atau memindahkan file, perhatikan apakah arsip tersebut berisi satu file JSON, lebih dari satu, atau folder media; konten pastinya bergantung pada pilihan ekspor. Membuka `.zip` seolah-olah itu adalah JSON akan gagal karena ZIP adalah format file yang berbeda.
Periksa sintaksis JSON secara lokal
Dokumen JSON adalah teks yang mendeskripsikan nilai-nilai terstruktur. Tingkat teratas dapat berupa objek, array, atau nilai JSON valid lainnya; objek JSON berisi anggota bernama, sementara array berisi nilai berurutan. String menggunakan tanda kutip ganda, serta tanda koma, titik dua, dan tanda kurung siku harus mengikuti sintaksis JSON. [Panduan JSON MDN](https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON) menjelaskan struktur-struktur ini dan batasan sintaksis umum.
Untuk pemeriksaan lokal cepat dan indentasi yang mudah dibaca, Python mendokumentasikan bentuk baris perintah ini:
`python3 -m json.tool < journal.json`
Gunakan perintah tersebut dengan jalur ke file yang Anda ekstrak, dan alihkan output ke file baru hanya jika Anda menginginkan salinan terpisah yang diformat rapi (pretty-printed). Perintah ini mencetak JSON yang diformat jika penguraian berhasil; jika penguraian gagal, Python melaporkan lokasi kesalahan. Penguraian yang berhasil berarti teks tersebut merupakan JSON yang valid untuk pengurai tersebut. Hal ini tidak memastikan bahwa file tersebut lengkap, bahwa nilai-nilainya memiliki arti yang Anda harapkan, atau bahwa Day One dapat mengimpornya. [Dokumentasi `json` Python](https://docs.python.org/3/library/json.html) juga mendokumentasikan `json.load()` dan `json.loads()` untuk membaca file atau string.
Temukan bentuk dokumen yang sebenarnya
Mulailah dari karakter non-spasi pertama. Tanda `{` pembuka menunjukkan sebuah objek; `[` menunjukkan sebuah array. Pada salinan yang diformat, perluas tingkat luar dan periksa nama anggota serta tipe nilai. Array dapat berisi objek; objek-objek tersebut dapat berisi array atau objek bersarang. Bentuk objek yang berulang dapat membantu Anda menemukan kandidat rekaman entri, tetapi pengulangan saja tidak membuktikan skema yang dimaksudkan oleh pengekspor.
Cari teks untuk frasa yang Anda ketahui ada dalam suatu entri, lalu periksa kurung kurawal dan nilai di sekitarnya. Catat kunci persisnya di samping nilai daripada menamainya ulang berdasarkan tebakan. Nilai yang tampak seperti tanggal mungkin merupakan kandidat tanggal; string yang menyerupai jalur (path) mungkin merupakan kandidat referensi lampiran. Perlakukan keduanya sebagai belum terkonfirmasi sampai dokumentasi Day One atau konteks ekspor itu sendiri mengonfirmasi maknanya. Pertahankan ejaan, tanda baca, urutan escape, dan tipe nilai asli dalam catatan Anda.
Tafsirkan escape dan referensi media secara hati-hati
Urutan yang terlihat seperti `\\n` di dalam string JSON mewakili baris baru yang di-escape; ini belum tentu dua karakter pada entri aslinya. Tanda kutip dan garis miring terbalik (backslash) juga di-escape. Sebuah pengurai dapat menampilkan “Line one\nLine two” sebagai string yang berisi jeda baris, sementara teks JSON mengodekan jeda tersebut dengan `\\n`. Bandingkan nilai dalam pembaca atau pengurai tanpa mengedit file sumber.
Jika suatu nilai menyerupai nama file media atau jalur relatif, periksa apakah file yang sesuai ada di dalam folder media yang diekstrak. Catat referensi dan kecocokan persisnya sebagai pengamatan, bukan bukti bahwa referensi tersebut terurai dengan benar di Day One. Kecocokan yang hilang dapat mencerminkan opsi ekspor, perbedaan penamaan, atau detail lain yang tidak ditetapkan oleh bidang itu saja. Simpan inventaris apa pun secara terpisah dari ekspor asli.
Gunakan catatan inspeksi, bukan nama bidang hasil tebakan
Tabel kecil memperjelas ketidakpastian dan membantu orang lain mengulangi peninjauan Anda:
Misalnya, objek JSON generik mungkin berisi `{\"text\":\"A note\",\"date\":\"2024-05-06\",\"attachment\":\"photos/example.jpg\"}`. Ini hanyalah nama dan nilai ilustrasi, bukan pernyataan tentang skema Day One. Pertahankan nilai asli tanpa perubahan dalam catatan Anda; hindari mengonversi format tanggal, menyelesaikan jalur berdasarkan tebakan, atau menghapus anggota yang tidak dikenal.
Ketahui apa yang tidak dapat dipastikan oleh inspeksi
Sintaksis yang valid tidak membuktikan bahwa ekspor mencakup setiap entri yang dipilih atau file media yang dimaksud. Melihat nilai kandidat lampiran tidak membuktikan bahwa file yang dirujuk ada, dan menemukan file bernama serupa tidak mengonfirmasi perilaku impor. Panduan Day One mengidentifikasi JSON sebagai format pengarsipan dan pengimporan kembali, tetapi inspeksi baca-saja bukanlah uji pemulihan. Jika Anda memerlukan kepastian tentang portabilitas atau pemulihan, konsultasikan instruksi Day One saat ini dan lakukan pemeriksaan impor apa pun secara terpisah pada salinan yang aman, dengan tetap menjaga ekspor yang belum tersentuh.
