Naar de inhoud

JSON-formatter & validator

Plak JSON en maak het op met 2, 4 of 8 spaties, zet het op één regel, of controleer alleen of het te parseren is. Geldige JSON komt terug met kleurcodering en de grootte vóór en na; ongeldige JSON komt terug met de eigen foutmelding van je browser. Gratis, zonder registratie, en wat je plakt verlaat je browser niet.

0 regels · 0 bytes

Zo gebruik je de JSON-formatter

  1. 1. Plak je JSON. Van een enkele waarde tot een grote API-respons. Het vak telt regels en bytes terwijl je typt.
  2. 2. Kies een inspringing. Kies 2, 4 of 8 spaties. De instelling geldt alleen voor Formatteren.
  3. 3. Kies een actie. Formatteren maakt de tekst leesbaar, Minifiëren verwijdert elke optionele spatie en elk regeleinde, en Alleen valideren controleert de syntax en toont een groen of rood oordeel zonder uitvoer.
  4. 4. Lees het resultaat. Geldige JSON wordt met kleurcodering getoond (sleutels paars, tekst groen, getallen blauw, true en false oranje, null rood) met de invoergrootte, de uitvoergrootte en de procentuele verandering. Ongeldige JSON toont in plaats daarvan de melding van de parser. Uitvoer kopiëren kopieert wat je ziet.

Wat telt als geldige JSON

De tool geeft je tekst door aan de strikte JSON-parser van de JavaScript-engine, dus die accepteert wat de standaard van het formaat, RFC 8259 (dezelfde grammatica als ECMA-404), accepteert, en niets meer. Dat is strenger dan een JavaScript-objectliteral, daarom werkt code die in een script draait hier vaak niet. De gebruikelijke boosdoeners:

Veelvoorkomende redenen waarom JSON niet wordt geparseerd
FoutVoorbeeldOplossing
Komma aan het eind{"a": 1,}Verwijder de laatste komma.
Enkele aanhalingstekens{'a': 1}Gebruik dubbele aanhalingstekens voor elke sleutel en tekst.
Sleutel zonder aanhalingstekens{a: 1}Zet er aanhalingstekens omheen: {"a": 1}.
Commentaar// notitie of /* notitie */JSON kent geen commentaar; verwijder het.
Voorloopnul of plusteken007, +5Schrijf 7 en 5.
NaN, Infinity of undefined{"x": NaN}Die bestaan niet in JSON; gebruik null of een tekst.
Hard regeleinde in een teksteen nieuwe regel tussen aanhalingstekensSchrijf het als de twee tekens \n.
Ontbrekende komma{"a": 1 "b": 2}Scheid de leden met komma's.

Een losse 42, "tekst" of null is ook geldig: sinds RFC 7159 kan een JSON-tekst elke waarde zijn, niet alleen een object of array. Een hoofdletter True of NULL niet — de drie literals zijn kleine letters.

Wat opmaken verandert

Deze tool parseert je JSON en schrijft die weer uit, dus het resultaat is dezelfde data in een nieuwe lay-out, geen teken-voor-teken kopie van je tekst. Vier dingen kunnen verschillen; de eerste twee zijn belangrijk als je JSON opmaakt die naar een ander systeem gaat:

  • Grote gehele getallen verliezen precisie. JavaScript-getallen zijn 64-bits drijvendekommagetallen, dus gehele getallen boven 9.007.199.254.740.991 (253 − 1) worden afgerond. 9007199254740993 komt terug als 9007199254740992. Zijn je ID's zo groot, bewaar ze dan als tekst.
  • Dubbele sleutels vallen samen. RFC 8259 zegt dat namen uniek zouden moeten zijn, maar verbiedt herhalingen niet; deze tool houdt de laatste waarde en laat de eerdere vallen.
  • Sleutels die op een geheel getal lijken, staan eerst. In JavaScript komen sleutels zoals "1" en "2" vóór de andere sleutels, oplopend, dus {"b":1,"2":1,"1":1} wordt teruggeschreven als {"1":1,"2":1,"b":1}. Andere sleutels houden hun volgorde.
  • Getallen en escapes worden herschreven. 1.50 wordt 1.5, 1e2 wordt 100 en \u00e9 wordt é.

Uitgewerkt voorbeeld

Neem deze invoer van 119 bytes, met een groot ID, een nul aan het eind, een exponent en een escape:

Invoer

{"title":"APA Manual","year":2020,"tags":["style","7th"],"id":9007199254740993,"price":1.50,"x":1e2,"name":"caf\u00e9"}

Formatteren met 2 spaties schrijft 156 bytes (+31%), één lid per regel, met "id": 9007199254740992, "price": 1.5, "x": 100 en "name": "café". Minifiëren schrijft 114 bytes (-4%) op één regel, met dezelfde wijzigingen. Verder verschilt er niets aan de data. Groottes zijn UTF-8-bytes, dus de é telt als twee.

Welke tool heb je nodig?

Deze pagina is voor JSON zelf. Staan je gegevens in een ander formaat, dan doet een verwante tool het werk: CSV naar JSON voor spreadsheets, de geplande YAML-naar-JSON-converter en XML-naar-JSON-converter, XML-opmaker voor XML-documenten en HTML-opmaker voor markup.

Veelgestelde vragen

Wat doet een JSON-formatter?
Hij parseert JSON en schrijft die terug met consistente inspringing en één lid per regel, zodat een geminifieerde API-respons leesbaar wordt. Omdat hij eerst moet parseren, dient hij ook als validator: tekst die geen geldige JSON is, levert een foutmelding op in plaats van uitvoer.
Waarom zegt mijn JSON dat hij ongeldig is?
Meestal door een van de fouten in de tabel hierboven: een komma aan het eind, enkele aanhalingstekens, een sleutel zonder aanhalingstekens, commentaar of een ontbrekende komma. De melding komt van de eigen JSON-parser van je browser, dus de formulering verschilt tussen Chrome, Firefox en Safari, en er staat misschien wel of geen positie bij. Zoek het probleem op of net vóór het punt dat de melding noemt.
Kan ik JSON met commentaar, JSON5 of JSONC opmaken?
Nee. Commentaar, komma's aan het eind en enkele aanhalingstekens horen niet bij JSON, en deze tool gebruikt een strikte parser. Verwijder ze eerst, of zet het bestand in je editor om naar gewone JSON.
Wat is het verschil tussen Formatteren, Minifiëren en Alleen valideren?
Formatteren voegt inspringing en regeleinden toe, Minifiëren verwijdert alle optionele witruimte voor de kleinst mogelijke tekst, en Alleen valideren controleert de syntax en toont een oordeel zonder uitvoer. Alle drie gebruiken dezelfde parser, dus een document dat er één doorstaat, doorstaat ze allemaal.
Waarom is een getal in mijn JSON veranderd?
De tool leest getallen als JavaScript-floats en schrijft ze terug in de kortste vorm van JavaScript. Daardoor wordt 1.50 1.5 en 1e2 100, en gehele getallen groter dan 253 − 1 worden afgerond. Bewaar zeer grote identificaties als tekst als ze exact moeten blijven.
Wordt mijn JSON ergens geüpload?
Nee. Parseren, opmaken en markeren gebeuren allemaal in je browser, en de tekst die je plakt wordt niet naar CitationEasy of iemand anders gestuurd. Wis het vak als je klaar bent op een gedeelde computer.
Kan ik de sleutels sorteren of tabs voor inspringing gebruiken?
Niet hier. De inspringkeuzes zijn 2, 4 of 8 spaties, en sleutels blijven in de volgorde die je invoer gaf, behalve sleutels die op een geheel getal lijken; die gaan eerst, zoals hierboven beschreven.

Gerelateerde tools

Meer hulpmiddelen: Data, opmaaktalen en code