JSON validator & forskønner

JSON validator & forskønner er et gratis værktøj, der kontrollerer, om JSON er syntaktisk gyldig, og formaterer gyldigt indhold, så strukturen bliver lettere at læse.
Hvad gør validering og forskønnelse af JSON?
JSON-validering bekræfter, at inputtet følger JSON-grammatikken, mens forskønnelse viser gyldige objekter og arrays med ensartede mellemrum og indrykninger. Det er nyttigt, når du fejlsøger API-svar, kontrollerer konfiguration før udrulning eller læser kompakte data fra en tredjepart.
JSON har strengere syntaks end et JavaScript-objektliteral. Egenskabsnavne skal stå i dobbelte anførselstegn, strenge må ikke bruge enkelte anførselstegn, og hverken objekter eller arrays må have et afsluttende komma. Kommentarer, undefined, NaN og Infinity ligger også uden for JSON-specifikationen.
Værktøjet bruger PHP-funktionen json_decode på serveren. Dit input sendes til serveren via HTTPS og gemmes ikke. Det forlader dog din enhed, så fjern adgangskoder, adgangstokens og personoplysninger, hvis din organisations regler for databehandling ikke tillader, at de sendes til en ekstern server.
Hvordan validerer og forskønner jeg JSON?
Indsæt indholdet i feltet JSON, og kør værktøjet. For at få et brugbart resultat skal du indsætte én komplet JSON-værdi i stedet for en del af et objekt, der er kopieret fra en loglinje.
- Kopiér det rå svar, konfigurationsafsnittet eller en anden JSON-værdi uden omgivende etiketter fra konsollen.
- Indsæt det i JSON-feltet, og bevar anførselstegn og escape-tegn.
- Kør valideringen, og gennemgå enten det formaterede resultat eller den rapporterede fejl.
- Hvis valideringen mislykkes, skal du rette den første synlige syntaksfejl og køre den igen. Ét manglende anførselstegn kan få flere efterfølgende tegn til at blive fortolket forkert.

De fire tilladte blanktegn mellem JSON-tokens, mellemrum (U+0020), tabulator (U+0009), linjeskift (U+000A) og vognretur (U+000D), har ingen betydning og kan derfor tilføjes eller fjernes uden at ændre dataene. Blanktegn i en streng med anførselstegn er data og skal forblive uændrede. Tegnsætning i strenge bevares også, men anførselstegn, omvendte skråstreger og kontroltegn kræver den korrekte escape-sekvens.
Hvordan skal jeg læse valideringsresultatet?
Et vellykket resultat betyder, at PHP kunne afkode inputtet som JSON. En fejl betyder, at parseren ikke kunne fortolke det som én komplet og gyldig JSON-værdi. Forskønnelsen gør derefter indlejringen og afgrænsningen af gyldige objekter og arrays tydelig.
Typiske årsager til fejl er:
- et afsluttende komma før } eller ];
- et egenskabsnavn uden anførselstegn, f.eks. {name: "Ada"};
- strenge med enkelte anførselstegn;
- et manglende komma mellem egenskaber eller arrayelementer;
- et dobbelt anførselstegn eller en omvendt skråstreg i en streng, som ikke er escaped;
- et ufuldstændigt objekt, array eller en ufuldstændig streng;
- ugyldigt UTF-8-input eller et råt kontroltegn i en streng;
- en heltalsdel med unødvendige foranstillede nuller, f.eks. 01 eller -01, eller værdier, som ikke findes i JSON, f.eks. NaN.
Et tomt felt er ikke gyldig JSON. En enkeltstående værdi som 42, true, null eller "hello" er derimod gyldig JSON, selvom den ikke er et objekt eller et array. Indhold med meget dyb indlejring kan også overskride afkoderens grænse for indlejringsniveauer.
Syntaksvalidering bekræfter ikke, at dataene overholder en API-kontrakt. Et dokument kan være gyldig JSON, selvom det indeholder en streng, hvor en applikation forventer et tal, mangler en påkrævet egenskab eller bruger et uacceptabelt datoformat. Brug JSON Schema eller kontroller på applikationsniveau til den slags krav.

Eksempler på JSON
Gyldigt kompakt input:
{"name":"Ada","active":true,"roles":["admin","editor"]}
Det forskønnede resultat viser egenskaberne og arrayelementerne på separate niveauer med indrykning. Værdierne er fortsat henholdsvis en streng, en boolesk værdi og et array. Formateringen ændrer præsentationen, ikke de underliggende datatyper.
Ugyldigt input med et afsluttende komma:
{"name":"Ada","active":true,}
Valideringen mislykkes, fordi JSON ikke tillader et komma efter den sidste egenskab. Fjern kommaet for at gøre objektet gyldigt.
Tekst med accenter og ikke-latinske tegn kan stå direkte i JSON-strenge, når inputtet er gyldigt UTF-8. Eksempelvis er {"city":"Zürich","greeting":"こんにちは"} gyldig. JSON-escape-notation som \u00fc er en anden gyldig repræsentation af visse Unicode-tegn, men tegn uden for Basic Multilingual Plane kræver surrogatpar.
Hvornår kan det ikke betale sig at forskønne JSON?
Forskønnelse er unødvendig, når JSON kun skal læses af en maskine, og ingen skal gennemgå indholdet manuelt eller i et versionsstyringssystem. Ekstra indrykninger og linjeskift i JSON øger antallet af overførte bytes, så produktionssvar sendes ofte i kompakt form.
Det giver heller ikke megen værdi at minificere JSON, som allerede er kompakt. Gentagen minificering kan ikke forkorte faste egenskabsnavne eller strengværdier, og en ændring af værdierne ville ændre dataene. Hvis du arbejder med JavaScript til udrulning frem for JSON-data, er JS minificering den mere relevante handling.
Forskønnelse er mest nyttig, når du gennemgår JSON-strukturer eller værdier under fejlsøgning, kodegennemgang og kontrol før udrulning. Den gør uoverensstemmende indlejring synlig, gør store arrays lettere at gennemgå og giver renere diffs, når konfiguration gemmes i Git. Den reparerer ikke automatisk ugyldig JSON og afgør heller ikke, hvad et tvetydigt fragment skulle have betydet.
Ofte stillede spørgsmål
Kan JSON indeholde kommentarer?
Nej. Standard-JSON har ingen syntaks til kommentarer, så // comment og /* comment */ får valideringen til at mislykkes. Hvis en konfigurationsfil skal indeholde kommentarer, skal du bruge et format, der understøtter dem, eller fjerne kommentarerne, før indholdet sendes til en streng JSON-parser.
Bliver dublerede egenskabsnavne afvist?
Ikke nødvendigvis. JSON-specifikationen siger, at medlemsnavne i et objekt bør være unikke, men parsere behandler ikke konsekvent dubletter som en syntaksfejl. PHP-afkodning beholder typisk den sidste værdi, så find dubletter før valideringen, hvis det er vigtigt at bevare hver forekomst.
Kan jeg validere en JSON Lines-fil?
Ikke som ét JSON-dokument. JSON Lines, også kaldet NDJSON, indeholder en separat JSON-værdi på hver linje, mens en almindelig JSON-parser forventer én værdi på øverste niveau. Validér hver linje separat, eller konvertér posterne til ét samlet JSON-array.
Har rækkefølgen af egenskaber i et objekt betydning?
Applikationer bør ikke være afhængige af rækkefølgen af egenskaber i JSON-objekter. Arrays har en fast rækkefølge, men objekter repræsenterer samlinger af navngivne medlemmer, og en anden parser eller serialiseringsfunktion kan skrive medlemmerne i en anden rækkefølge. Hvis rækkefølgen har betydning, skal du placere værdierne i et array.
Hvorfor kan en JSON-fil fejle, selvom den ser korrekt ud?
Et usynligt byteordensmærke, ugyldig UTF-8 eller et kontroltegn, som ikke er escaped, kan få tilsyneladende korrekt tekst til at fejle. Kopiering fra en terminal kan også tilføje præfikser som statusetiketter eller tidsstempler. Undersøg de rå bytes, eller åbn filen i en editor, der kan vise tegnkodning og kontroltegn.
Afsluttende kontrol
Før du udruller rettet JSON, skal du sammenligne datatyperne såvel som de synlige værdier, kontrollere, at escape-sekvenserne ikke er ændret, og køre den applikation, der skal bruge dataene, eller dens skemavalidering. Behold en urørt kopi af det oprindelige svar, når du undersøger data fra en tredjepart, så formateringen ikke skjuler årsagen til fejlen.
Populære værktøjer
Opret din egen tilpassede signatur og download den nemt med vores signaturgeneratorværktøj til personlige e-signaturer.
Beregn størrelsen af enhver tekst i Bytes (B), Kilobytes (KB) eller Megabytes (MB) ved hjælp af vores tekststørrelsesberegner.
Brug værktøjet til reverse IP-opslag for hurtigt og nemt at finde det domæne eller den vært, der er knyttet til en IP-adresse.
Brug vores ping-værktøj til hurtigt og effektivt at tjekke status og svartid for enhver hjemmeside, server eller port.
Digily Links IP-opslagsværktøj giver detaljerede oplysninger om enhver IP-adresse. Brug denne gratis online tjeneste til at få omfattende IP-data.
Generer dit gratis WhatsApp-link øjeblikkeligt med vores WhatsApp Link Generator. Tilføj en tilpasset besked og start chats med ét klik. Ingen login eller kodning krævet.