Blog Metlivi

Comment lire une exportation JSON Day One hors ligne sans la modifier

Pour inspecter une exportation Day One, conservez le fichier ZIP téléchargé intact, créez une copie de travail distincte, extrayez-la localement et ouvrez le fichier `.json` à l'aide d'un éditeur de texte ou des outils JSON standard de Python. Le ZIP est un conteneur ; le JSON est du texte structuré ; les éventuels dossiers multimédias contiennent des fichiers séparés. Vous pouvez vérifier si la syntaxe JSON est valide et localiser des valeurs potentielles de texte, de date ou de pièce jointe sans présumer de la signification des clés non documentées. Un JSON lisible ne suffit pas à prouver que chaque fichier multimédia est présent ou que l'archive peut être restaurée.

30 septembre 20264 min de lectureEsthétique du quotidien et expression personnellePar Metlivi Editorial Team
Section 1

Distinguer d'abord le ZIP, le JSON et les médias

Day One décrit son exportation JSON comme un fichier ZIP contenant un fichier `.json` avec les entrées sélectionnées ; les médias peuvent être inclus dans des dossiers pour les photos, vidéos, fichiers audio et PDF. Le guide indique que le format JSON est destiné à la réimportation de données archivées et peut être lu par Day One ainsi que par les applications prenant en charge les fichiers JSON Day One. Le [guide d'exportation de Day One](https://dayoneapp.com/guides/tips-and-tutorials/exporting-entries/) ne définit pas de schéma complet champ par champ ; ne considérez donc pas un nom de fichier ou une clé d'apparence familière comme une preuve de sa signification.

Conservez le ZIP d'origine intact. Utilisez l'outil d'archivage de votre système d'exploitation pour en extraire une copie dans un nouveau dossier local. Évitez de téléverser un journal intime sur un outil de formatage en ligne. Avant d'ouvrir ou de déplacer des fichiers, notez si l'archive contient un seul fichier JSON, plusieurs, ou des dossiers multimédias ; le contenu exact dépend des options choisies lors de l'exportation. Ouvrir un `.zip` comme s'il s'agissait d'un fichier JSON échouera, car le ZIP est un format de fichier différent.

Section 2

Vérifier la syntaxe JSON localement

Un document JSON est un texte décrivant des valeurs structurées. Le niveau racine peut être un objet, un tableau ou une autre valeur JSON valide ; les objets JSON contiennent des membres nommés, tandis que les tableaux contiennent des valeurs ordonnées. Les chaînes de caractères utilisent des guillemets doubles, et les virgules, deux-points et crochets doivent respecter la syntaxe JSON. Le [guide JSON de MDN](https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON) explique ces structures ainsi que les restrictions syntaxiques courantes.

Pour une vérification locale rapide avec une indentation lisible, la documentation de Python propose cette commande :

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

Utilisez la commande avec le chemin d'accès vers votre fichier extrait, et ne redirigez la sortie vers un nouveau fichier que si vous souhaitez obtenir une copie séparée et mise en forme (« pretty-printed »). La commande affiche le JSON formaté lorsque l'analyse réussit ; en cas d'échec, Python indique l'emplacement de l'erreur. Une analyse réussie signifie que le texte est un JSON valide pour l'analyseur. Cela n'établit pas que le fichier est complet, que ses valeurs ont la signification attendue ou que Day One pourra l'importer. La [documentation du module `json` de Python](https://docs.python.org/3/library/json.html) détaille également l'utilisation de `json.load()` et `json.loads()` pour lire un fichier ou une chaîne de caractères.

Section 3

Identifier la structure réelle du document

Commencez par le premier caractère qui n'est pas un espace. Une accolade ouvrante `{` indique un objet ; un crochet ouvrant `[` indique un tableau. Dans une copie mise en forme, développez le niveau externe et examinez le nom des membres ainsi que les types de valeurs. Les tableaux peuvent contenir des objets ; ces objets peuvent contenir des tableaux ou des objets imbriqués. La répétition de structures d'objets similaires peut vous aider à repérer les enregistrements d'entrées potentiels, mais la seule répétition ne prouve pas le schéma prévu par l'outil d'exportation.

Recherchez dans le texte une phrase dont vous savez qu'elle apparaît dans une entrée, puis examinez les accolades et les valeurs qui l'entourent. Notez la clé exacte à côté de la valeur au lieu de la renommer en vous basant sur une supposition. Une valeur qui ressemble à une date peut être une date potentielle ; une chaîne qui ressemble à un chemin d'accès peut être une référence potentielle à une pièce jointe. Considérez ces deux éléments comme non confirmés tant que la documentation de Day One ou le contexte propre à l'exportation n'en valide pas la signification. Conservez l'orthographe, la ponctuation, les séquences d'échappement et les types de valeurs d'origine dans vos notes.

Section 4

Interpréter prudemment les échappements et les références de médias

Une séquence visible telle que `\\n` à l'intérieur d'une chaîne JSON représente un saut de ligne échappé ; il ne s'agit pas nécessairement de deux caractères distincts dans l'entrée d'origine. Les guillemets et les barres obliques inverses sont également échappés. Un analyseur peut afficher « Ligne un\nLigne deux » sous la forme d'une chaîne contenant un saut de ligne, alors que le texte JSON encode ce saut avec `\\n`. Comparez les valeurs dans un lecteur ou un analyseur sans modifier le fichier source.

Si une valeur ressemble à un nom de fichier multimédia ou à un chemin relatif, vérifiez si un fichier correspondant existe dans les dossiers multimédias extraits. Notez la référence exacte et la correspondance comme une observation, et non comme une preuve que la référence se résout correctement dans Day One. Une correspondance manquante peut provenir des options d'exportation, de différences de nommage ou d'autres détails que le champ seul ne permet pas d'établir. Conservez tout inventaire séparé de l'exportation d'origine.

Section 5

Utiliser un registre d'inspection plutôt que de deviner le nom des champs

Un petit tableau permet de formaliser les incertitudes et aide une autre personne à reproduire votre examen :

Par exemple, un objet JSON générique pourrait contenir `{\"text\":\"A note\",\"date\":\"2024-05-06\",\"attachment\":\"photos/example.jpg\"}`. Il s'agit uniquement de noms et de valeurs d'exemple, et non d'une affirmation sur le schéma de Day One. Conservez la valeur d'origine inchangée dans vos notes ; évitez de convertir les formats de date, de résoudre les chemins par déduction ou de supprimer les membres inconnus.

Contenu du conteneur : Noms de fichiers et dossiers présents après l'extraction
Structure JSON : Type de niveau supérieur et imbrications observées
Valeur candidate : Clé exacte, type de valeur et court extrait
Signification possible : « Texte/date/pièce jointe potentiel(le) » ; marquer comme non vérifié
Média associé : Chemin d'accès exact et présence ou non d'un fichier correspondant
Section 6

Savoir ce que l'inspection ne peut pas établir

Une syntaxe valide ne prouve pas que l'exportation inclut chaque entrée sélectionnée ou chaque fichier multimédia prévu. Observer une valeur correspondant à une pièce jointe potentielle ne prouve pas que le fichier référencé est présent, et trouver un fichier portant un nom similaire ne confirme pas le comportement lors de l'importation. Le guide de Day One qualifie le format JSON de format d'archivage et de réimportation, mais une inspection en lecture seule ne constitue pas un test de restauration. Si vous avez besoin de garanties quant à la portabilité ou à la récupération de vos données, consultez la documentation actuelle de Day One et effectuez tout test d'importation séparément sur une copie sécurisée, en préservant l'exportation originale intacte.

À lire aussi

Continuer sur ce thème