Vad är filformatet JSON?
Filer med filtillägget .json innehåller data lagrad i klartextformat, med en notation härledd från en delmängd av JavaScript, med UTF-8-kodning. Den nuvarande auktoritativa beskrivningen av formatet är ECMA-404 och IETF RFC 8259 (2017), som ersatte den tidigare RFC 4627. Bland andra användningsområden används .json i stor utsträckning för att överföra information över nätverk och för att lagra konfigurationer, inställningar och serialiserat programtillstånd.
Ett .json-dokument kan innehålla:
- Strängar,
- Nummer (IEEE 754 dubbelprecision flyttal),
- Booleska värden (
trueochfalse), null,- Arrayer av ovanstående element,
- Objekt (nyckel-värde-mappningar).
Objekt och arrayer kan nästlas på flera nivåer. Även om syntaxen för .json-filer är baserad på JavaScript, används de i applikationer skrivna i praktiskt taget alla programmeringsspråk. I JavaScript hanteras parsning och serialisering av de inbyggda metoderna JSON.parse() och JSON.stringify(), tillgängliga sedan ECMAScript 5 - inget externt bibliotek krävs. Formatet har inget stöd för kommentarer. Relaterade textbaserade dataformat inkluderar YAML, XML och CSV.
Säkerhet & trygghet
RISK: LOWEn JSON-fil är ren data - den kan inte innehålla eller köra kod, så det är säkert att öppna en i en redigerare. Riskerna är informationsrelaterade: dataexporter innehåller ofta privat data, API-nycklar eller sessionstokens (klistra inte in sådana filer i online-visare eller dela dem); och för utvecklare är parsning av otillförlitlig JSON med eval() istället för JSON.parse(), eller överdimensionerade filer som används för överbelastningsattacker, klassiska fallgropar. Se upp för dubbla filtillägg (.json.exe) i nedladdningar.
Formatdetaljer
i ett nötskalProgram som öppnar JSON-filer
Tekniska detaljer
djup specifikation| MIME-typ | application/json |
| Teckenkodning | UTF-8; RFC 8259 föreskriver UTF-8 utan BOM för nätverksutbyte |
| Filsignatur (magic bytes) | Ingen - klartext; ett giltigt dokument börjar med «{» (objekt) eller «[» (array), eventuellt föregått av blanksteg |
| Datatyper som stöds | string, number, boolean (true/false), null, array, object |
| Nummerrepresentation | IEEE 754 dubbelprecision (64-bitars) flyttal; specifikationen definierar ingen separat heltalstyp |
| Strängkodning | Unicode; icke-ASCII-tecken kan förekomma som bokstavlig UTF-8 eller som \uXXXX escape-sekvenser med fyra hex-siffror |
| Stöd för kommentarer | Inget - kommentarer är uttryckligen exkluderade från JSON-specifikationen |
| Blanksteg | Icke-signifikanta blanksteg (mellanslag, tabulator, CR, LF) är tillåtna mellan två tokens |
| BOM-hantering | RFC 8259 förbjuder uttryckligen en UTF-8 BOM i början av ett JSON-utbytesdokument |
| Unika objektnycklar | Nycklar i ett objekt bör vara unika; RFC 8259 förbjuder inte dubbletter men lämnar beteendet till implementeringen |
| Nästling | Obegränsad rekursiv nästling av objekt och arrayer; praktiskt djup begränsas av parserns stackstorlek |
| Inbyggt JavaScript-API | JSON.parse() och JSON.stringify() är inbyggda sedan ECMAScript 5 (2009); inget tredjepartsbibliotek behövs |
| Interoperabilitet | Språkoberoende; parsers och serializers finns för praktiskt taget alla större programmeringsspråk |
| Vanliga användningsområden | REST API-nyttolaster, konfigurationsfiler för applikationer, dataserialisering, strömmande loggrader (JSONL / NDJSON), webbappsmanifest |
| Släppt | 2001 (json.org); first IETF spec RFC 4627 (2006); current RFC 8259 / ECMA-404 (2017) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | www.rfc-editor.org |
JSON-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om JSON-filer.