Przejdź do treści

Obiekt JS na JSON

Konwertuj literał obiektu JavaScript na ścisły, ważny JSON.

Wejście
Wynik

Obiekt JS na JSON

Wklej literał obiektu JavaScript, a ten narzędzie przekonwertuje go na ścisły JSON, który możesz używać w odpowiedzi API, pliku konfiguracyjnym lub fixture'u testowym. Akceptuje składnię, którą naprawdę używa kod JavaScript: klucze bez cudzysłowów, ciągi w apostrofach, przecinki końcowe, komentarze liniowe i blokowe oraz zwykłe template stringi bez wyrażeń ${…} — żaden z nich nie jest sam w sobie ważny w JSON.

Opcja wcięcia formatuje wynik z 2 spacjami, 4 spacjami, tabulatorem lub jedną linią zminifikowaną. Wartości undefined nie mają odpowiednika w JSON, dlatego opcja undefined-values pozwala ci albo całkowicie pominąć te klucze, albo zamienić je na null, zależnie od tego, co oczekuje twój konsument. Wyłączenie opcji "Usuń komentarze" sprawia, że błędne komentarze są raportowane jako błąd zamiast być po cichu usuwane, co jest przydatne, gdy chcesz potwierdzić, że wejście jest w inny sposób czysty. Sortowanie kluczy porządkuje wszystkie właściwości obiektu alfabetycznie na każdym poziomie zagnieżdżenia, co ułatwia porównywanie dwóch ładunków JSON. Przełączenie kierunku na JSON → JS object odwraca konwersję, tworząc literał JavaScript z usuniętymi cudzysłowami z każdego klucza, który jest ważnym identyfikatorem — przydatne do wklejania konfiguracji bezpośrednio do kodu źródłowego.

Błędne wejście — brakujący dwukropek, niezakończony ciąg, wyrażenie template — jest raportowane z wierszem i kolumną, w której parsing się zatrzymał, aby można było znaleźć problem zamiast zgadywać. Wyjście jest ograniczone do 10 MB, aby karta pozostała responsywna; bardzo duże obiekty powinny być najpierw podzielone na mniejsze części.

Wszystko działa lokalnie w przeglądarce — nic, co wkleisz, nie jest nigdzie wysyłane. Gdy skończysz, skopiuj wynik, pobierz go jako plik .txt lub wyślij go bezpośrednio do wejścia innego narzędzia, aby kontynuować pracę.

Częste pytania

Jaką składnię JavaScript rozumie?
Obiekty i tablice z niezacytowanymi lub cytowanymi kluczami, łańcuchami w pojedynczych i podwójnych cudzysłowach, prostymi łańcuchami szablonów, liczbami (w tym ujemnymi, dziesiętnymi i podkreślnikami), true/false/null/undefined, przecinkami końcowymi i // i /* */ komentarzami.
Co się stanie z nieokreślonymi wartościami?
Domyślnie klucz, którego wartość jest nieokreślona, jest całkowicie pominięty w JSON, ponieważ JSON nie ma nieokreśloności. Przełącz "Nieokreślone wartości" na "Konwertuj na null", jeśli potrzebujesz, aby klucz pozostał obecny.
Czy może to konwertować JSON z powrotem na literał obiektu JS?
Tak — przełącz Kierunek na "JSON → Obiekt JS". Klucze, które są poprawnymi identyfikatorami JavaScript, są drukowane bez cudzysłowów; reszta zachowuje pojedyncze cudzysłowy.
Czy ocenia obiekt jako kod?
Nie. Twoje dane wejściowe są analizowane jako tekst przez dedykowany parser — nigdy nie są wykonywane, więc funkcje, zmienne i wyrażenia szablonu takie jak ${…} nie są obsługiwane i są zgłaszane jako błędy zamiast uruchamiania.
Czy moje dane są przesyłane gdziekolwiek?
Nie. Konwersja odbywa się całkowicie w twojej przeglądarce — twój obiekt nigdy nie opuszcza twojego urządzenia.