Hva er JSON-filformatet?
Filer med filendelsen .json inneholder data lagret i rent tekstformat, ved bruk av en notasjon avledet fra en delmengde av JavaScript, med UTF-8-koding. Den gjeldende autoritative beskrivelsen av formatet er ECMA-404 og IETF RFC 8259 (2017), som erstattet den tidligere RFC 4627. Blant andre bruksområder er .json mye brukt til å overføre informasjon over nettverk og til å lagre konfigurasjon, innstillinger og serialisert applikasjonstilstand.
Et .json-dokument kan inneholde:
- Strenger,
- Tall (IEEE 754 dobbelpresisjon flyttall),
- Booleanske verdier (
trueogfalse), null,- Tabeller (arrays) av elementene ovenfor,
- Objekter (nøkkel-verdi-kart).
Objekter og tabeller kan nøstes på flere nivåer. Selv om syntaksen i .json-filer er basert på JavaScript, brukes de i applikasjoner skrevet i praktisk talt alle programmeringsspråk. I JavaScript håndteres parsing og serialisering av de innebygde metodene JSON.parse() og JSON.stringify(), tilgjengelige siden ECMAScript 5 - ingen eksterne biblioteker er nødvendige. Formatet har ingen støtte for kommentarer. Relaterte tekstbaserte dataformater inkluderer YAML, XML og CSV.
Sikkerhet og trygghet
RISIKO: LOWEn JSON-fil er rene data - den kan ikke inneholde eller kjøre kode, så det er trygt å åpne en i et redigeringsprogram. Risikoen er informasjonsrelatert: dataeksport inneholder ofte private data, API-nøkler eller sesjons-tokens (ikke lim slike filer inn i online-visere eller del dem); og for utviklere er parsing av upålitelig JSON med eval() i stedet for JSON.parse(), eller overdimensjonerte filer brukt til tjenestenektangrep (DoS), klassiske fallgruver. Se opp for doble filendelser (.json.exe) i nedlastinger.
Formatdetaljer
i et nøtteskallProgrammer som åpner JSON-filer
Tekniske detaljer
dyp spesifikasjon| MIME-type | application/json |
| Tegnoding | UTF-8; RFC 8259 krever UTF-8 uten BOM for utveksling over nettverk |
| Filsignatur (magic bytes) | Ingen - ren tekst; et gyldig dokument starter med «{» (objekt) eller «[» (tabell), eventuelt med innledende mellomrom |
| Støttede datatyper | string, number, boolean (true/false), null, array, object |
| Tallrepresentasjon | IEEE 754 dobbelpresisjon (64-bit) flyttall; spesifikasjonen definerer ingen egen heltallstype |
| Strengkoding | Unicode; ikke-ASCII-tegn kan vises som bokstavelig UTF-8 eller som \uXXXX escape-sekvenser med fire heksadesimale sifre |
| Støtte for kommentarer | Ingen - kommentarer er eksplisitt ekskludert fra JSON-spesifikasjonen |
| Mellomrom (whitespace) | Ubetydelige mellomrom (mellomrom, tabulator, CR, LF) er tillatt mellom alle tokens |
| BOM-håndtering | RFC 8259 forbyr eksplisitt en UTF-8 BOM i starten av et JSON-dokument for utveksling |
| Unike nøkler i objekter | Nøkler i et objekt bør være unike; RFC 8259 forbyr ikke duplikater, men overlater oppførselen til implementasjonen |
| Nøsting | Ubegrenset rekursiv nøsting av objekter og tabeller; praktisk dybde er begrenset av parserens stabelstørrelse |
| Innebygd JavaScript-API | JSON.parse() og JSON.stringify() har vært innebygd siden ECMAScript 5 (2009); ingen tredjepartsbiblioteker er nødvendig |
| Interoperabilitet | Språkuavhengig; parsere og serialisatorer finnes for praktisk talt alle store programmeringsspråk |
| Vanlige bruksområder | REST API-nyttelast, konfigurasjonsfiler for applikasjoner, dataserialisering, strømming av logglinjer (JSONL / NDJSON), web-app-manifester |
| Utgitt | 2001 (json.org); first IETF spec RFC 4627 (2006); current RFC 8259 / ECMA-404 (2017) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.rfc-editor.org |
JSON-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om JSON-filer.