JSON
JSON står for JavaScript Object Notation. Med JSON kan vi lagre objekt som skal brukast i JavaScript, som rein tekst. Det at dataa blir skilt frå koden, gjer det enklare å endre og halde ved like data som blir brukte av ein applikasjon eller webside. Dette liknar litt på å bruke Firebase eller andre NoSQL-databasar, men forskjellen er at JSON-data kan lagrast lokalt, i den same mappa som websida.
Data i ei JSON-fil har ein spesifikk syntaks som skil seg litt frå korleis ein lagar objekt i JavaScript. Ei JSON-fil kan innehalde eitt objekt eller ei liste (array) med objekt. Her er eit døme på ei JSON-fil med eitt objekt:
JSON-data blir skrivne, som du kan sjå, som par av feltnamn og verdi, med eit kolon imellom, slik:
"feltnamn":"verdi"
Når vi set fleire felt etter kvarandre, bruker vi komma imellom og krøllparentesar rundt for å angi det som eit objekt.
Dersom eit felt har fleire verdiar, kan vi setje verdiane i ei liste, slik:
Som nemnt kan ei JSON-fil innehalde ei liste med fleire objekt. Det kan vi skrive på denne måten:
Nokre gonger kan det vere nyttig å lagre eitt eller fleire objekt som verdi til eit felt inne i eit objekt. Det må vi gjere dersom vi vil legge til informasjon om eigaren av hunden. Då gjer vi slik:
Det er mange måtar å få JSON-data inn på nettsida di på. I utgangspunktet er JSON-data berre tekst, så det kan overførast på mange måtar. Ofte vil JSON-data bli lesne inn frå ein webserver, frå ein database eller frå ei tekstfil på datamaskina di. Det finst derfor innebygde metodar i JavaScript for å konvertere JSON-data (tekst) til JavaScript-objekt, og motsett. Dei mest brukte av desse er JSON.
parse
()
, som gjer om JSON-data til JavaScript-objekt, og JSON.
stringify
()
, som gjer om JavaScript-objekt til JSON-data. Desse kan du lese om på W3Schools:
Dersom du har lagra ei JSON-fil saman med nettsida di, eller dersom du har URL-en til ei JSON-fil som ligg på nettet, kan du importere JSON-dataa som ein modul i JavaScript, slik:
import data from
"_URL_"
with
{
type
: "json" };
Denne koden både importerer JSON-dataa og konverterer dei (parse) til JavaScript-data. Du treng derfor ikkje å bruke metoden JSON.parse().
Merk at når du bruker import, må du legge inn type
="
module
"
i script-taggen på nettsida di, slik:
<
script type
="
module
">
import data from
"_URL_"
with
{
type
: "json" };
</
script
>
Merk òg at data
ikkje skal stå i krøllparentesar.
I tilfellet med hundar.json blir JSON-dataa importerte som ei liste med objekt, med variabelnamnet du har sett (data
i dømet over). Dette variabelnamnet kan setjast til å vere kva du vil, til dømes hundar
. For å hente ut namnet til den første hunden, kan du skrive denne koden:
Denne koden vil skrive ut Fido i konsollen.
For å skrive ut informasjon om alle hundane kan du bruke ei lykkje:
Det vil gi denne utskrifta:
Dersom du i tillegg vil skrive ut yndlingsmaten til hundane, må du bruke ei lykkje inne i lykkja for å skrive ut innhaldet av lista med yndlingsmat for kvar hund. For at utskrifta skal bli fin, må vi trikse litt for å få inn komma og og når vi listar opp dei ulike mattypane. Koden blir slik:
Då blir utskrifta slik: