Help

JavaScript-object naar JSON: van losse syntaxis naar strikte JSON

Plak een JavaScript-object met sleutels zonder aanhalingstekens, enkele aanhalingstekens, commentaar of een komma achter het laatste item en krijg strikte JSON met escapes terug. Deze JSON converter voor JavaScript leest de tekst met een parser en voert hem nooit uit als code. Je kunt dus ook tekst uit een console, een configuratiebestand of een codevoorbeeld plakken.


Stringify JSON online: zo werkt het

  1. Plak het object in het vak JavaScript-object of JSON. Bij plakken wordt het meteen omgezet. Als je typt, wordt het resultaat ongeveer 300 milliseconden nadat je stopt bijgewerkt.
  2. Kies bij Formaat hoe het resultaat eruit moet zien: Geminimaliseerd (standaard, op één regel), 2 spaties of 4 spaties.
  3. Lees het resultaat onder Strikte JSON. Daaronder staan “Omgezet naar strikte JSON.” en het aantal tekens.
  4. Kies Kopiëren, direct onder het resultaat. De knop toont heel even Gekopieerd.
  5. Kies Wissen om het vak leeg te maken en opnieuw te beginnen.

Een klein voorbeeld: je plakt {name: 'Ana', tags: ['a', 'b',], id: 0xFF}. Met Geminimaliseerd is het resultaat {"name":"Ana","tags":["a","b"],"id":255}.

Welke losse JavaScript-syntaxis wordt gelezen

De tekst wordt gelezen met de JSON5-parser, die weet waarin een JavaScript-objectliteral van JSON verschilt. Elk van deze vormen wordt omgezet in plaats van geweigerd:

Aanhalingstekens, backslashes en regeleinden binnen een string krijgen een escape: 'He said "hi"' komt aan als "He said \"hi\"". Wat al geldige JSON is, gaat ongewijzigd door, afgezien van de opmaak die je koos.

JSON minify online of met 2 of 4 spaties

Het menu Formaat staat boven het resultaat. Geminimaliseerd schrijft alles op één regel zonder spaties, handig voor de body van een verzoek, testdata of een waarde die je in een string wilt plakken.

2 spaties en 4 spaties geven een ingesprongen weergave die makkelijker te lezen en te vergelijken is. Het resultaat verandert zodra je kiest, en Kopiëren neemt mee wat je ziet.

Wat niet gelezen wordt en de foutmelding

Alleen gegevens worden geaccepteerd, geen code. Als de parser stopt, verschijnt een rood vak met de titel Kan dit niet lezen, een duidelijke reden en de plek, bijvoorbeeld “Regel 1, kolom 6”. Bij {a:1 b:2} stopt de parser bij de b en vraagt hij je te controleren of er vlak ervoor een komma, dubbele punt, haakje of aanhalingsteken ontbreekt. Eindigt de tekst terwijl er nog een haakje, accolade of aanhalingsteken openstaat, dan krijg je in plaats daarvan “De tekst eindigt te vroeg.”

JSON stringify JavaScript: getallen, dubbele sleutels en meer

Het resultaat komt van de eigen JSON.stringify van de browser, dus getallen zijn JavaScript-getallen. Dat heeft gevolgen die je vóór het kopiëren moet kennen:

Is de invoer al geldige JSON en wil je hem alleen laten inspringen zonder dat er een cijfer verandert, gebruik dan “JSON formatteren”. Om JSON tegen een schema te controleren is er de “JSON-schema validator”.

Grenzen en privacy


Veelgestelde vragen

Hoe krijg ik een JavaScript-object als JSON?

Plak het object in het vak “JavaScript-object of JSON”. Het wordt meteen bij het plakken omgezet, of ongeveer 300 milliseconden nadat je stopt met typen, en de strikte JSON verschijnt onder “Strikte JSON”. Kies “Kopiëren” om hem mee te nemen. Plak alleen het object zelf, geen regel als const data = {...};.

Hoe maak ik van enkele aanhalingstekens dubbele in JSON?

Plak de tekst. Elke string met enkele aanhalingstekens komt met dubbele eruit, en een dubbel aanhalingsteken erin krijgt een escape, dus 'He said "hi"' wordt "He said \"hi\"". Alleen strings en sleutels worden aangepast, dus een apostrof in een string met dubbele aanhalingstekens blijft zoals hij is.

Hoe haal ik de komma achter het laatste item uit JSON?

Plak de tekst. Een komma na het laatste item van een object of array, zoals in [1, 2,], wordt bij invoer geaccepteerd en blijft weg uit het resultaat onder “Strikte JSON”. Verder verandert er niets aan de gegevens.

Kan JSON sleutels zonder aanhalingstekens of commentaar hebben?

Strikte JSON niet: elke sleutel en elke string heeft dubbele aanhalingstekens nodig, en er bestaat geen syntaxis voor commentaar. JavaScript-objecten en configuratiebestanden hebben vaak allebei. Deze tool leest ze, schrijft de sleutels met dubbele aanhalingstekens en laat het commentaar weg, zodat het resultaat geldige JSON is.

JSON5 naar JSON: wat is het verschil tussen JSON en JSON5?

JSON5 is een losse uitbreiding van JSON die sleutels zonder aanhalingstekens, strings met enkele aanhalingstekens, komma’s achter het laatste item, commentaar, hexadecimale getallen en nog een paar JavaScript-achtige vormen toestaat. Deze tool leest die syntaxis en schrijft gewone JSON, zodat een JSON5-document zonder niet-ondersteunde waarden JSON wordt die elke parser accepteert.

Hoe minify ik JSON of laat ik hem met 2 of 4 spaties inspringen?

Gebruik het menu “Formaat” boven het resultaat. “Geminimaliseerd”, de standaard, geeft één regel zonder spaties. 2 spaties en 4 spaties geven een ingesprongen versie. Het resultaat en wat “Kopiëren” meeneemt veranderen zodra je een andere optie kiest.

Waarom staat er “Kan dit niet lezen”?

De tekst is geen object, array of waarde die de parser begrijpt. Het rode vak noemt de plek waar hij stopte, bijvoorbeeld “Regel 1, kolom 6”, en wat je moet controleren: een komma, dubbele punt, haakje of aanhalingsteken dat vlak ervoor ontbreekt, of een haakje, accolade of aanhalingsteken dat aan het eind nog openstaat. Instructies zoals const x = {...}, een puntkomma aan het eind, backtick-strings, undefined, functies en new Date() worden niet geaccepteerd. Plak alleen het object.

Wordt het JavaScript dat ik plak uitgevoerd?

Nee. De tekst wordt door een parser (JSON5) gelezen en nooit door eval, dus niets van wat je plakt kan draaien. Daarom wordt code ook geweigerd: een functie, een variabelenaam of new Date() is een fout en niet iets om uit te rekenen.

Waarom is mijn grote getal veranderd, en wat gebeurt er met NaN?

Getallen worden JavaScript-getallen, die alleen tot 9007199254740991 exact zijn. 12345678901234567890 komt eruit als 12345678901234567000 en 1.0 als 1. Wil je elk cijfer van een lang ID behouden, zet het dan tussen aanhalingstekens in je invoer of gebruik “JSON formatteren”, dat getallen precies overneemt zoals ze zijn geschreven. NaN, Infinity en -Infinity worden null, omdat JSON er geen schrijfwijze voor heeft. Komt een sleutel twee keer voor, dan wint de laatste waarde.

JavaScript-object naar JSON-string: is dit hetzelfde als JSON.stringify, en hoe groot mag de tekst zijn?

Het resultaat wordt met JSON.stringify gemaakt, dus de uitvoerregels zijn dezelfde. Het verschil zit in de invoer: JSON.stringify heeft een echt object in je code nodig, terwijl je hier de tekst van het object plakt, ook met losse syntaxis. Je kunt tot 5.000.000 tekens plakken. De omzetting gebeurt op je apparaat en er wordt niets geüpload of opgeslagen.

Aanbevolen

Help de tools gratis te houden. ✨

Afbeeldingen dienen ter illustratie. Als Amazon-Partner verdien ik aan in aanmerking komende aankopen.