Hvad er JSON-filformatet?
Filer med filtypen .json indeholder data gemt i almindeligt tekstformat ved hjælp af notation afledt af en delmængde af JavaScript med UTF-8-kodning. Den nuværende autoritative beskrivelse af formatet er ECMA-404 og IETF RFC 8259 (2017), som erstattede den tidligere RFC 4627. Blandt andre anvendelser bruges .json i vid udstrækning til at overføre information på tværs af netværk og til at gemme konfiguration, indstillinger og serialiseret applikationstilstand.
Et .json-dokument kan indeholde:
- Strenge,
- Tal (IEEE 754 dobbelt-præcision flydende komma),
- Booleanske værdier (
trueogfalse), null,- Arrays af ovenstående elementer,
- Objekter (nøgle-værdi-kort).
Objekter og arrays kan indlejres på flere niveauer. Selvom syntaksen i .json-filer er baseret på JavaScript, bruges de i applikationer skrevet i stort set alle programmeringssprog. I JavaScript håndteres parsing og serialisering af de indbyggede JSON.parse() og JSON.stringify() metoder, der har været tilgængelige siden ECMAScript 5 - intet eksternt bibliotek er påkrævet. Formatet understøtter ikke kommentarer. Relaterede tekstbaserede dataformater inkluderer YAML, XML og CSV.
Sikkerhed og tryghed
RISIKO: LOWEn JSON-fil er rene data - den kan ikke indeholde eller eksekvere kode, så det er sikkert at åbne en i en editor. Risiciene er informationsmæssige: dataeksporter indeholder ofte private data, API-nøgler eller session-tokens (indsæt ikke sådanne filer i online-fremvisere eller del dem); og for udviklere er parsing af upålidelig JSON med eval() i stedet for JSON.parse(), eller overdimensionerede filer brugt til denial-of-service, klassiske faldgruber. Hold øje med dobbelte filtyper (.json.exe) i downloads.
Formatdetaljer
kort fortaltProgrammer der åbner JSON-filer
Tekniske detaljer
dyb specifikation| MIME-type | application/json |
| Tegnkodning | UTF-8; RFC 8259 påbyder UTF-8 uden BOM til netværksudveksling |
| Filsignatur (magic bytes) | Ingen - almindelig tekst; et gyldigt dokument starter med «{» (objekt) eller «[» (array), eventuelt forudgået af hvide felter |
| Understøttede datatyper | string, number, boolean (true/false), null, array, object |
| Talrepræsentation | IEEE 754 dobbelt-præcision (64-bit) flydende komma; specifikationen definerer ingen særskilt heltalstype |
| Strengkodning | Unicode; ikke-ASCII-tegn kan optræde som bogstavelig UTF-8 eller som \uXXXX fire-cifrede hex-escape-sekvenser |
| Understøttelse af kommentarer | Ingen - kommentarer er eksplicit udelukket fra JSON-specifikationen |
| Hvide felter | Ubetydelige hvide felter (mellemrum, tabulator, CR, LF) er tilladt mellem to tokens |
| BOM-håndtering | RFC 8259 forbyder eksplicit en UTF-8 BOM i starten af et JSON-udvekslingsdokument |
| Unikke objektnøgler | Nøgler i et objekt bør være unikke; RFC 8259 forbyder ikke dubletter, men lader adfærden være implementeringsafhængig |
| Indlejring | Ubegrænset rekursiv indlejring af objekter og arrays; praktisk dybde er begrænset af parserens stakstørrelse |
| Indbygget JavaScript API | JSON.parse() og JSON.stringify() er indfødte siden ECMAScript 5 (2009); intet tredjepartsbibliotek er nødvendigt |
| Interoperabilitet | Sproguafhængig; parsere og serialisere findes til stort set alle større programmeringssprog |
| Almindelige anvendelser | REST API-payloads, applikationskonfigurationsfiler, dataserialisering, streaming af loglinjer (JSONL / NDJSON), web-app-manifester |
| Udgivet | 2001 (json.org); first IETF spec RFC 4627 (2006); current RFC 8259 / ECMA-404 (2017) |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.rfc-editor.org |
JSON-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om JSON-filer.