Skip to content

Allt om WordPress, webbutveckling — och mer därtill

JSON: formatering, validering och reparation av trasigt

JSON: formatering, validering och reparation av trasigt

Klistra in ett API-svar, en konfiguration eller ett loggutdrag — du får en läsbar vy, ett träd och en lista över allt som inte följer standarden, med exakt rad och position. Allt tolkas i din webbläsare: data skickas ingenstans och sparas inte någonstans.

Släpp en .json här — filen läses lokalt. Du kan även klistra in sådant som ännu inte är giltig JSON: en logg, ett API-svar med kommentarer, ett utdrag med avslutande kommatecken.
Bearbetning

Nycklar och ordning är bevarade, talens skrivsätt är oförändrat.

Klistra in JSON ovan och tryck på «Bearbeta».

Data lämnar aldrig din webbläsare — tolkning och formatering körs lokalt, utan att något skickas till en server.

Fyra utgåvor av standarden och hur de skiljer sig åt

JSON beskrivs av flera dokument, och de är inte identiska. Valet av specifikation ändrar vad verktyget räknar som ett fel. RFC 4627 (2006) — den ursprungliga. Ett dokument på översta nivån kan bara vara ett objekt eller en array; ett fristående tal eller en sträng är otillåtna. Just den utgåvan lutar sig vissa gamla bibliotek fortfarande mot. RFC 7159 (2014) — tillät vilket värde som helst på översta nivån. Sedan dess är 42 och «text» fullvärdiga JSON-dokument. RFC 8259 (2017) — den gällande. Den lade till kravet på UTF-8 för utbyte mellan system och slog fast att namn inom ett objekt måste vara unika. ECMA-404 — beskriver bara syntaxen. Den förbjuder inte dubbletter av nycklar och nämner inte ensamma surrogat, så uppsättningen varningar är kortast här. Är du osäker, behåll RFC 8259: det är det strängaste av de gällande regelverken, och det som klarar det accepteras överallt.

Varför en egen tolk i stället för webbläsarens JSON.parse

Den inbyggda tolken är gjord för fart, inte för diagnostik. På samma data tiger den där ett verktyg borde tala: Ett meddelande utan koordinater. Webbläsaren säger «Unexpected token» och en förskjutning i tecken; här får du raden, positionen och vad som exakt förväntades. Ett fel för hela dokumentet. Efter det första haveriet återhämtar sig tolkningen och visar resten i stället för att tvinga dig att rätta ett i taget. Dubbletter av nycklar passerar tyst. JSON.parse behåller det sista värdet, och förlusten upptäcks först i produktion. Talens skrivsätt går förlorat. 1.0 blir 1, och ett heltal över nio biljarder ändrar sina sista siffror — precis så går identifierare från databasen sönder. Nycklarnas ordning i utdata behålls som i källan tills du själv ber om sortering. Tal skrivs här som standard precis som de skrevs: verktyget visar dokumentet, inte resultatet av att tolka det.

Vad rättningsläget faktiskt lagar

Verkliga data är sällan ren JSON. Reparationsläget för det som kommer från konfigurationer, loggar och andras API:er i linje med standarden: kommentarer // och /* */ tas bort; kommatecken före en avslutande parentes plockas bort; enkla och typografiska citattecken normaliseras till dubbla; nycklar utan citattecken och numeriska nycklar sätts inom citattecken; True, NULL, None, undefined blir true, false, null; NaN och Infinity blir null, eftersom JSON inte har tal utan ändligt värde; talens skrivsätt — överflödigt plus, punkt i kanten, inledande nollor; styrtecken i strängar escapas; BOM i början av filen och JSONP-höljet tas bort. Ingen rättelse sker i tysthet: var och en hamnar i listan med antalet fall. Passar resultatet dig inte stänger du av kryssrutan, och dokumentet kontrolleras som det är.

Vanliga frågor