W tym artykule
Czym jest JSON5?
JSON5 to nadzbior JSON, ktory dodaje funkcje inspirowane skladnia ECMAScript 5.1. Zostal stworzony, aby uczynic JSON bardziej przyjaznym dla plikow konfiguracyjnych i innych przypadkow, w ktorych ludzie pisza i czytaja JSON ręcznie. Każdy prawidłowy dokument JSON jest również prawidłowym JSON5, ale JSON5 dodaje komentarze, końcowe przecinki, klucze bez cudzysłowów i inne udogodnienia.
Specyfikacja JSON5 została sfinalizowana w 2018 roku i jest szeroko przyjęta w narzediach JavaScript. Narzędzia budowania, takie jak Babel, Next.js i Webpack, akceptuja pliki konfiguracyjne JSON5. Konwersja JSON5 do standardowego JSON jest konieczna przy współpracy z systemami, ktore rozumieja tylko ścisły JSON, takimi jak API, bazy danych i większość języków programowania.
Funkcje JSON5 wyjaśnienie
JSON5 dodaje kilka rozszerzen skladniowych, ktore ułatwiają pisanie i utrzymywanie plikow konfiguracyjnych.
- Komentarze — dozwolone sa komentarze jednowierszowe (//) i wielowierszowe (/* */), czyniace pliki konfiguracyjne samodokumentujacymi
- Końcowe przecinki — tablice i obiekty moga miec przecinek po ostatnim elemencie, zmniejszając szum w diffach
- Klucze bez cudzysłowów — klucze obiektow bedace prawidłowymi identyfikatorami ECMAScript nie potrzebuja cudzysłowów
- Liczby szesnastkowe — wartości liczbowe można zapisywac jako 0xFF, przydatne dla kodow kolorow w konfiguracji
- Ciągi wielowierszowe — wartości ciągów moga obejmowac wiele wierszy z użyciem kontynuacji odwrotnym ukośnikiem
- Specjalne wartości liczbowe — Infinity, -Infinity i NaN sa prawidłowymi literalami liczbowymi w JSON5
Wypróbuj za darmo — bez rejestracji
Konwertuj JSON5 na JSON →Gdzie JSON5 jest używany
JSON5 jest używany głównie w narzediach ekosystemu JavaScript, gdzie pliki konfiguracyjne sa pisane i utrzymywane przez programistow.
- Babel — pliki .babelrc i babel.config.json5 obsługują składnię JSON5 dla konfiguracji budowania z komentarzami
- TypeScript — tsconfig.json obsługuje funkcje JSON5, takie jak komentarze i końcowe przecinki (technicznie JSONC)
- Chrome DevTools — profile ograniczania sieci i inne ustawienia używają formatu JSON5
- Next.js — pliki konfiguracyjne akceptuja JSON5 dla przyjaznej konfiguracji z dokumentacja w linii
Często zadawane pytania
Czy przeglądarki moga parsowac JSON5 natywnie?
Nie. Przeglądarki obsługują tylko standardowy JSON przez JSON.parse(). Aby parsowac JSON5 w przeglądarce lub aplikacji Node.js, potrzebujesz pakietu npm json5. Narzędzia budowania obslugujace JSON5 wykonuja parsowanie wewnętrznie podczas etapu budowania.
Jaka jest różnica między JSON5 a JSONC?
JSONC (JSON z komentarzami) dodaje tylko obsługę komentarzy do JSON. JSON5 to szerszy nadzbior, ktory dodaje komentarze, końcowe przecinki, klucze bez cudzysłowów, liczby szesnastkowe, ciągi wielowierszowe i specjalne wartości liczbowe. tsconfig.json TypeScript i settings.json VS Code używają JSONC, podczas gdy Babel i inne narzędzia używają pełnego JSON5.
Czy JSON5 to to samo co YAML?
Nie. JSON5 pozostaje blisko składni JSON z niewielkimi ergonomicznymi dodatkami. YAML to zupełnie inny format ze struktura oparta na białych znakach, kotwicami i wieloma innymi funkcjami. JSON5 jest łatwiejszy do konwersji na JSON, poniewaz jest ścisłym nadzbiorem. Konwersja YAML do JSON moze byc stratna, poniewaz YAML obsługuje typy danych, ktorych JSON nie ma.