Do czego służy
JSON5 to rozszerzenie JSON-a przeznaczone dla plików pisanych ręcznie. Pozwala na komentarze, końcowe przecinki, klucze obiektów bez cudzysłowów, ciągi w apostrofach i kilka wygodniejszych zapisów liczb. Narzędzia takie jak Babel, niektóre bundlery i wiele aplikacji przyjmuje JSON5 lub JSONC (JSON z komentarzami, używany przez tsconfig.json i ustawienia VS Code) jako format konfiguracji.
Wiele parserów, API i języków programowania akceptuje jednak wyłącznie ścisły JSON. Ten konwerter czyta JSON5 lub JSONC i zwraca standardowy JSON, który przyjmie każdy parser: wszystkie klucze w podwójnych cudzysłowach, bez komentarzy, bez końcowych przecinków i z liczbami w zapisie dziesiętnym.
Jak używać
- Wklej JSON5 lub JSONC, wgraj plik
.json5,.jsonclub.jsonalbo kliknij Przykład. - Wybierz Wcięcie: 2 lub 4 spacje albo Zwarty, aby uzyskać jeden wiersz.
- Wybierz, co zrobić z
InfinityiNaN: zamienić nanull, zamienić na tekst lub pokazać błąd. - Skopiuj lub pobierz JSON.
Jeśli dane wejściowe zawierają błąd składni, komunikat podaje wiersz i kolumnę, więc możesz od razu do niego przejść. Zwykły JSON jest też poprawnym JSON5, dlatego narzędzie przyda się również do sprawdzenia, czy plik się parsuje, i do ponownego sformatowania wcięć.
Przykład
Taka konfiguracja w JSON5:
// Server settings
{
host: 'localhost',
port: 0x1F90, // 8080
ratio: .5,
tags: ['api', 'v2',],
}
zamienia się w taki ścisły JSON:
{
"host": "localhost",
"port": 8080,
"ratio": 0.5,
"tags": [
"api",
"v2"
]
}
Komentarze zostają usunięte, klucze i ciągi dostają podwójne cudzysłowy, liczba szesnastkowa i ułamek bez części całkowitej są zapisane dziesiętnie, a końcowe przecinki znikają.
Co jest zamieniane
- Usuwane są komentarze wierszowe
//i blokowe/* */. - Klucze bez cudzysłowów, takie jak
port, i ciągi w apostrofach, takie jak'localhost', dostają podwójne cudzysłowy. - Ciągi kontynuowane ukośnikiem wstecznym na końcu wiersza są łączone w jeden.
- Liczby szesnastkowe (
0xFF), kropka dziesiętna na początku lub końcu (.5,5.) i jawne znaki plus (+3) stają się zwykłymi liczbami dziesiętnymi. - Końcowe przecinki w obiektach i tablicach są pomijane.
- Jeśli klucz występuje dwa razy, obowiązuje ostatnia wartość, tak jak w JavaScripcie.
FAQ
› Czym różni się JSON5 od JSONC?
JSONC to JSON z komentarzami (a w VS Code także z końcowymi przecinkami). JSON5 idzie dalej: klucze bez cudzysłowów, ciągi w apostrofach, ciągi wielowierszowe, liczby szesnastkowe, kropka dziesiętna na początku lub końcu liczby, Infinity i NaN. JSON5 jest nadzbiorem JSONC, więc to narzędzie czyta oba formaty.
› Czy komentarze zostaną zachowane?
Nie. Standardowy JSON nie ma składni komentarzy, więc są usuwane. Jeśli ich potrzebujesz, trzymaj plik JSON5 jako źródło i generuj z niego JSON.
› Co dzieje się z Infinity i NaN?
Ścisły JSON nie potrafi ich zapisać. Domyślnie zamieniają się w null, tak jak w JSON.stringify w JavaScripcie. Możesz też zamienić je na tekst albo wyświetlić błąd ze wskazaniem dokładnej ścieżki.
› Czy moje dane są gdzieś wysyłane?
Nie. Parsowanie i konwersja odbywają się w całości w przeglądarce, więc pliki konfiguracyjne z sekretami nigdy nie opuszczają Twojego urządzenia.