Блог Metlivi

Как читать офлайн JSON-экспорт из Day One, не изменяя его

Чтобы изучить экспорт из Day One, сохраните загруженный ZIP-архив без изменений, сделайте отдельную рабочую копию, распакуйте ее локально и откройте файл `.json` в текстовом редакторе или с помощью стандартных инструментов Python для работы с JSON. ZIP — это контейнер, JSON — структурированный текст, а в папках с медиафайлами хранятся отдельные файлы. Вы можете проверить корректность синтаксиса JSON и найти возможные фрагменты текста, даты или значения вложений, не строя догадок о значении недокументированных ключей. Сам по себе читаемый JSON не гарантирует наличие каждого медиафайла и возможность полного восстановления архива.

30 сентября 2026 г.4 мин чтенияПовседневная эстетика и самовыражениеАвтор: Metlivi Editorial Team
Раздел 1

Сначала разграничьте ZIP, JSON и медиафайлы

Day One описывает свой JSON-экспорт как ZIP-архив, содержащий файл `.json` с выбранными записями; медиафайлы могут включаться в папки для фотографий, видео, аудио и PDF. В руководстве указано, что JSON предназначен для повторного импорта архивированных данных и может читаться приложением Day One, а также программами, поддерживающими файлы JSON от Day One. В [руководстве по экспорту Day One](https://dayoneapp.com/guides/tips-and-tutorials/exporting-entries/) нет полного описания структуры каждого поля, поэтому не стоит считать знакомое имя файла или ключ подтверждением их назначения.

Оставьте исходный ZIP-архив нетронутым. С помощью архиватора вашей операционной системы распакуйте копию в новую локальную папку. Не загружайте личный дневник в онлайн-форматтеры. Перед открытием или перемещением файлов обратите внимание на то, содержит ли архив один файл JSON, несколько таких файлов или папки с медиафайлами; точный состав зависит от выбранных параметров экспорта. Попытка открыть `.zip` как файл JSON завершится ошибкой, поскольку ZIP представляет собой другой формат файлов.

Раздел 2

Проверьте синтаксис JSON локально

JSON-документ — это текст, описывающий структурированные значения. На верхнем уровне может находиться объект, массив или другое допустимое значение JSON; объекты JSON содержат именованные элементы, а массивы — упорядоченные значения. Строки заключаются в двойные кавычки, а запятые, двоеточия и скобки должны строго следовать синтаксису JSON. В [руководстве MDN по JSON](https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON) объясняются эти структуры и стандартные синтаксические ограничения.

Для быстрой локальной проверки и формирования удобных отступов в документации Python приводится следующая команда:

`python3 -m json.tool < journal.json`

Используйте эту команду, указав путь к распакованному файлу, и перенаправляйте вывод в новый файл только в том случае, если вам нужна отдельная красиво отформатированная копия. При успешном разборе команда выводит отформатированный JSON; в случае сбоя Python сообщает позицию ошибки. Успешный парсинг означает лишь то, что текст является синтаксически корректным JSON с точки зрения парсера. Это не доказывает, что файл полон, что его значения имеют ожидаемый вами смысл или что Day One сможет его импортировать. В [документации Python по модулю `json`](https://docs.python.org/3/library/json.html) также описаны функции `json.load()` и `json.loads()` для чтения из файла или строки.

Раздел 3

Определите реальную структуру документа

Начните с первого непробельного символа. Открывающая фигурная скобка `{` указывает на объект, а квадратная `[` — на массив. В отформатированной копии раскройте внешний уровень и изучите имена элементов и типы значений. Массивы могут содержать объекты, а те, в свою очередь, — другие массивы или вложенные объекты. Повторяющиеся структуры объектов помогают выявить потенциальные записи журнала, однако само по себе повторение не доказывает исходную схему экспортера.

Найдите в тексте фразу, которая точно есть в одной из записей, а затем изучите окружающие ее скобки и значения. Записывайте точный ключ рядом со значением вместо того, чтобы переименовывать его на основе догадок. Значение, похожее на дату, может оказаться потенциальной датой; строка, напоминающая путь к файлу, — возможной ссылкой на вложение. Считайте и то, и другое неподтвержденным, пока документация Day One или контекст самого экспорта не подтвердят их назначение. Сохраняйте в своих заметках исходное написание, пунктуацию, escape-последовательности и типы значений.

Раздел 4

Интерпретируйте escape-символы и ссылки на медиафайлы с осторожностью

Отображаемая последовательность вроде `\\n` внутри строки JSON представляет собой экранированный перенос строки; это вовсе не обязательно два отдельных символа в исходной записи. Кавычки и обратные косые черты также экранируются. Парсер может отобразить «Line one\nLine two» как строку с переносом, в то время как в исходном тексте JSON этот перенос закодирован как `\\n`. Сравнивайте значения в программе просмотра или через парсер, не редактируя исходный файл.

Если значение напоминает имя медиафайла или относительный путь, проверьте, существует ли соответствующий файл в распакованных папках с медиа. Зафиксируйте точную ссылку и совпадение как наблюдение, а не как доказательство того, что Day One обработает эту ссылку корректно. Отсутствие совпадения может объясняться параметрами экспорта, различиями в именовании или другими факторами, которые нельзя однозначно определить лишь по одному полю. Храните любые описи отдельно от исходного экспорта.

Раздел 5

Ведите журнал проверки, а не угадывайте имена полей

Небольшая таблица наглядно отражает неопределенность и помогает другому человеку повторить ваш анализ:

Например, стандартный объект JSON может выглядеть так: `{\"text\":\"A note\",\"date\":\"2024-05-06\",\"attachment\":\"photos/example.jpg\"}`. Это исключительно иллюстративные имена и значения, а не утверждение о структуре Day One. Оставляйте исходное значение в своих записях без изменений; избегайте конвертации форматов дат, угадывания путей к файлам или удаления незнакомых полей.

Содержимое контейнера: имена файлов и папок, присутствующие после распаковки
Структура JSON: тип верхнего уровня и наблюдаемая вложенность
Потенциальное значение: точный ключ, тип значения и короткая выдержка
Возможный смысл: «Потенциальный текст/дата/вложение»; помечайте как непроверенное
Связанные медиафайлы: точный путь и информация о том, найден ли соответствующий файл
Раздел 6

Понимайте границы возможностей визуальной проверки

Корректный синтаксис не доказывает, что экспорт включает все выбранные записи или нужные медиафайлы. Наличие возможного значения вложения не подтверждает присутствие самого файла, а обнаружение файла со схожим именем не гарантирует его корректный импорт. Руководство Day One определяет JSON как формат для архивации и повторного импорта, однако просмотр без редактирования не является тестом на восстановление данных. Если вам нужна уверенность в переносимости или возможности восстановления, сверьтесь с актуальными инструкциями Day One и проводите любые проверки импорта отдельно на безопасной копии, оставив исходный экспорт нетронутым.

Материалы по теме

Продолжить изучение темы