Metlivi-bloggen

Så läser du en Day One JSON-export offline utan att ändra den

För att granska en Day One-export ska du låta den nedladdade ZIP-filen vara oförändrad, göra en separat arbetskopia, packa upp den lokalt och öppna .json-filen med en textredigerare eller Pythons inbyggda JSON-verktyg. ZIP-filen är en behållare, JSON-filen är strukturerad text och eventuella mediemappar innehåller separata filer. Du kan kontrollera om JSON-syntaxen är giltig och hitta möjliga text-, datum- eller bilagevärden utan att anta vad odokumenterade nycklar betyder. Att JSON-filen går att läsa visar inte att alla mediefiler finns med eller att arkivet kan återställas.

30 september 20264 min läsningAv Metlivi Editorial Team
Avsnitt 1

Skilj först mellan ZIP-filen, JSON-filen och medierna

Day One beskriver sin JSON-export som en ZIP-fil med en .json-fil som innehåller utvalda poster. Medier kan inkluderas i mappar för foton, videor, ljud och PDF-filer. Guiden säger att JSON är avsett för återimport av arkiverade data och kan läsas av Day One och appar som stöder Day One JSON-filer. Day Ones exportguide definierar inte ett fullständigt schema fält för fält, så behandla inte ett välbekant filnamn eller en nyckel som bevis för vad den betyder.

Låt den ursprungliga ZIP-filen vara orörd. Använd operativsystemets arkivverktyg för att packa upp en kopia i en ny lokal mapp. Undvik att ladda upp en personlig dagbok till en formatteringstjänst online. Innan du öppnar eller flyttar filer bör du notera om arkivet innehåller en JSON-fil, flera JSON-filer eller mediemappar; det exakta innehållet beror på exportinställningarna. Det går inte att öppna en .zip som om den vore JSON, eftersom ZIP är ett annat filformat.

Avsnitt 2

Kontrollera JSON-syntaxen lokalt

Ett JSON-dokument är text som beskriver strukturerade värden. Den översta nivån kan vara ett objekt, en array eller ett annat giltigt JSON-värde. JSON-objekt innehåller namngivna medlemmar, medan arrayer innehåller värden i en bestämd ordning. Strängar använder dubbla citattecken, och kommatecken, kolon och hakparenteser måste följa JSON-syntaxen. MDN:s JSON-guide förklarar dessa strukturer och vanliga syntaxbegränsningar.

Python dokumenterar följande kommandoradsform för en snabb lokal kontroll och lättläst indragning:

python3 -m json.tool < journal.json

Använd kommandot med sökvägen till den uppackade filen och omdirigera bara utdata till en ny fil om du vill ha en separat, formaterad kopia. Kommandot skriver ut formaterad JSON när parsningen lyckas. Om parsningen misslyckas rapporterar Python var felet inträffade. En lyckad parsning innebär att texten är giltig JSON för parsern. Det visar inte att filen är komplett, att värdena betyder det du förväntar dig eller att Day One kan importera den. Pythons dokumentation för json beskriver också json.load() och json.loads() för att läsa en fil eller sträng.

Avsnitt 3

Ta reda på dokumentets faktiska struktur

Börja vid det första tecknet som inte är blanksteg. En inledande { anger ett objekt; [ anger en array. I en formaterad kopia kan du fälla ut den yttersta nivån och granska medlemsnamn och värdetyper. Arrayer kan innehålla objekt, och dessa objekt kan i sin tur innehålla arrayer eller nästlade objekt. Upprepade objektstrukturer kan hjälpa dig att hitta möjliga postposter, men upprepning i sig bevisar inte vilket schema exportören avsett.

Sök i texten efter en fras som du vet förekommer i en post och granska klamrarna och värdena runt den. Anteckna den exakta nyckeln bredvid värdet i stället för att döpa om den utifrån en gissning. Ett värde som liknar ett datum kan vara ett möjligt datum; en sträng som liknar en sökväg kan vara en möjlig bilagereferens. Behandla båda som obekräftade tills Day Ones dokumentation eller exportens sammanhang bekräftar vad de betyder. Bevara ursprunglig stavning, interpunktion, escape-sekvenser och värdetyper i dina anteckningar.

Avsnitt 4

Tolka escape-sekvenser och mediereferenser försiktigt

En synlig sekvens som \n i en JSON-sträng representerar en escape-kodad radbrytning; den består inte nödvändigtvis av två tecken i den ursprungliga posten. Även citattecken och omvända snedstreck är escape-kodade. En parser kan visa ”Rad ett Rad två” som en sträng med en radbrytning, medan JSON-texten kodar radbrytningen med \n. Jämför värden i en läsare eller parser utan att redigera källfilen.

Om ett värde liknar ett mediefilnamn eller en relativ sökväg kan du kontrollera om motsvarande fil finns i de uppackade mediemapparna. Anteckna den exakta referensen och eventuell matchning som en observation, inte som bevis för att referensen fungerar korrekt i Day One. En utebliven matchning kan bero på exportinställningar, skillnader i namngivning eller andra detaljer som inte framgår av fältet i sig. Håll eventuella filförteckningar åtskilda från den ursprungliga exporten.

Avsnitt 5

För inspektionsanteckningar, inte gissade fältnamn

En liten tabell gör osäkerheten tydlig och hjälper någon annan att upprepa granskningen:

Ett generiskt JSON-objekt kan till exempel innehålla {"text":"A note","date":"2024-05-06","attachment":"photos/example.jpg"}. Det här är endast illustrativa namn och värden, inte ett påstående om Day Ones schema. Behåll originalvärdet oförändrat i dina anteckningar. Undvik att konvertera datumformat, försöka lösa sökvägar genom att gissa eller ta bort okända medlemmar.

Behållarens innehåll: Filnamn och mappar som finns efter uppackning

JSON-struktur: Observerad typ på den översta nivån och nästling

Möjligt värde: Exakt nyckel, värdetyp och ett kort utdrag

Möjlig betydelse: ”Möjlig text/datum/bilaga”; markera som obekräftad

Relaterade medier: Exakt sökväg och om en matchande fil hittades

Avsnitt 6

Förstå vad en granskning inte kan fastställa

Giltig syntax bevisar inte att exporten innehåller alla valda poster eller avsedda mediefiler. Att hitta ett möjligt bilagevärde bevisar inte att den refererade filen finns, och en fil med liknande namn bekräftar inte hur importen fungerar. Day Ones guide beskriver JSON som ett arkiv- och återimportformat, men en skrivskyddad granskning är inget återställningstest. Om du behöver veta att exporten kan flyttas eller återställas bör du läsa aktuella instruktioner från Day One och testa importen separat på en säker kopia, samtidigt som den orörda exporten bevaras.

Relaterad läsning

Fortsätt utforska detta ämne