JSON Toolkit

FAQ dotyczące użytkowania narzędzi: dane, pliki i eksport

Podsumowanie: Czy dane są wysyłane, jak duży plik działa, czy coś jest przechowywane lokalnie, dlaczego chiński zamienia się w ucieczki: dziesięć pytań opisujących realne granice narzędzia JSON online.

Początkujący~10 min czytaniaOpublikowano 2026-10-30Zaktualizowano 2026-10-30
Okładka FAQ dotyczącego użytkowania narzędzi

Najważniejsze: parsowanie, formatowanie, diffowanie i odpytywanie działają całkowicie w przeglądarce i działają offline; wyczyść historię localStorage po obsłużeniu danych wrażliwych; a powyżej 10 MB przejdź na strumieniowe narzędzia wiersza poleceń, zamiast wklejać plik do przeglądarki.

Zanim wkleisz wrażliwy ładunek do narzędzia online, wiedz, dokąd trafia. Ten artykuł omawia tylko zachowanie narzędzia w czasie wykonania, a nie składnię.

1. Dane i prywatność

Czy online’owy formater JSON wysyła moje dane na serwer?

Nie. Parsowanie, formatowanie, minifikacja, diffowanie i odpytywanie odbywają się w przeglądarce, a strona nigdy nie wysyła tego, co wklejasz, do serwera aplikacji.

Nie musisz czytać oświadczenia o prywatności, aby stwierdzić, czy narzędzie online wysyła dane; panel sieci przeglądarki wystarczy:

  1. Otwórz narzędzia deweloperskie, przejdź do panelu Sieć i włącz utrwalanie logów;
  2. Wklej trochę JSON-a i kliknij „Formatuj”;
  3. Obserwuj, czy pojawia się nowe żądanie XHR lub fetch i czy jego ciało zawiera twoją treść.

Dla naprawdę lokalnego narzędzia ten etap pokaże tylko żądania statycznych zasobów. I odwrotnie: jeśli pojedyncze formatowanie produkuje POST /api/format, którego ciało to twój oryginalny tekst, to dane już opuściły przeglądarkę, niezależnie od tego, co twierdzi strona.

Każde narzędzie w tej witrynie jest implementacją czysto frontendową, a wynik budowania nie zawiera API serwerowego. Po przejściu offline odświeżenie trafiające w cache nadal działa, co jest też najbardziej bezpośrednim sposobem stwierdzenia, czy coś jest „całkowicie lokalne”.

Czy nadal mogę używać go offline?

Tak, pod warunkiem że strona została raz załadowana.

Zasoby witryny są pobierane do cache’u przeglądarki przy pierwszej wizycie, więc nawet bez sieci później formatowanie, minifikacja, konwersja JSON5 i zapytania JSONPath nadal działają. Zawodzą tylko funkcje zależne od sieci, takie jak sprawdzanie nowej wersji czy pobieranie instalatora desktopowego.

Test offline jest też dobrym sposobem na weryfikację, że „dane nigdy nie wychodzą”: jeśli wszystko się psuje w momencie rozłączenia, każda czynność rozmawiała z serwerem.

Czy coś jest przechowywane lokalnie? Jak to wyczyścić?

Tak, ale tylko w localStorage obecnej przeglądarki i tylko historia oraz ustawienia UI.

  • Historia: ostatnie 100 przetworzonych wpisów w odwrotnej kolejności chronologicznej, używane do przypomnienia poprzednio wklejonych danych;
  • Ustawienia UI: motyw, język, preferencje wcięć i tym podobne;
  • Nieprzechowywane: sam plik, rekordy przesłań ani cokolwiek niosącego tożsamość.

Istnieją trzy sposoby wyczyszczenia, od najwęziej do najszerszego:

Metoda Zasięg Kiedy używać
„Wyczyść historię” na stronie historii Usuwa tylko historię, zachowuje ustawienia Po obsłużeniu danych wrażliwych
localStorage.clear() w narzędziach deweloperskich Wszystkie lokalne dane tej witryny Diagnozowanie nieprawidłowych ustawień
„Wyczyść dane przeglądania” przeglądarki dla tej witryny Cookies, cache i storage razem Przed użyciem współdzielonego komputera

Gdy obsługujesz dane produkcyjne na współdzielonym komputerze, wyczyść historię po zakończeniu, zamiast tylko zamykać kartę — localStorage nie znika po zamknięciu karty.

Dlaczego chińskie znaki zamieniły się w \u4e2d\u6587?

Bo funkcja „ucieczki” zamienia znaki nie-ASCII w sekwencje ucieczki Unicode. To celowe zachowanie, a nie mojibake.

\u4e2d to punkt kodowy znaku 中 (U+4E2D). Oba formy są semantycznie identyczne w JSON-ie i parsują się do tego samego łańcucha:

{
  "escaped": "\u4e2d\u6587",
  "plain": "中文"
}

Kiedy ucieczka jest potrzebna? Przy osadzaniu JSON w starym systemie akceptującym tylko ASCII, zapisywaniu go w nagłówku HTTP albo zagnieżdżaniu w innym łańcuchu. Kiedy nie jest potrzebna? Większość transportu API i przechowywania plików jej nie wymaga; przechowywanie chińskiego bezpośrednio jako UTF-8 oszczędza bajty — jeden chiński znak ma 3 bajty, a 6 bajtów po escape'owaniu.

Jeśli widzisz, że chiński zamienia się w \u4e2d, najpierw sprawdź, czy kliknąłeś przycisk „Ucieczka”, zamiast podejrzewać, że kodowanie jest zepsute.

2. Pliki i rozmiar

Jaki rozmiar pliku jest wspierany?

Po stronie przeglądarki nie ma twardego limitu; realne limity pochodzą z trzech miejsc:

Etap Przybliżone wąskie gardło Objaw
Wklejanie do pola tekstowego 1–5 MB Wejście się zacina po wklejeniu, opóźnienie kursora
JSON.parse 50–100 MB Wątek główny blokuje się na sekundy, strona nie odpowiada
Renderowanie drzewa 10k–20k węzłów Gubione klatki przy rozwijaniu, przewijanie się zawiesza

Innymi słowy, plik dziesiątek MB „da się sparsować”, ale jest „nieużywalny”. Gdy naprawdę musisz przetwarzać takie dane, właściwym ruchem nie jest szukanie mocniejszego narzędzia online, ale przejście na strumieniowanie (zobacz FAQ dotyczące wydajności i bezpieczeństwa).

Zasada praktyczna: poniżej 2 MB narzędzie online pozostaje płynne; 2–10 MB oznacza akceptację jednego lub dwóch opóźnień; powyżej 10 MB preferuj lokalny skrypt.

Przeglądarka zawiesza się po wklejeniu. Co teraz?

Nie odświeżaj najpierw — odświeżenie traci treść i musisz wklejać ponownie. Ratuj to w tej kolejności:

  1. Odczekaj 10–30 sekund. W większości przypadków wątek główny parsuje lub renderuje i wróci sam;
  2. Gdy wróci, natychmiast przełącz na widok „Minifikacja” albo zwiń drzewo, aby zmniejszyć liczbę węzłów DOM;
  3. Skopiuj treść do lokalnego pliku i przejdź na wiersz poleceń:
# Look at the structure of the first 100 lines only, to avoid loading everything
head -c 200000 data.json | jq . | head -n 100

# Count entries with a streaming tool, without loading them into memory
jq -c '.items[]' data.json | wc -l

Następnym razem, gdy trafisz na duży plik, najpierw uruchom wc -c, aby zobaczyć liczbę bajtów, a potem zdecyduj, czy wklejać go do przeglądarki.

Dlaczego formatowanie się nie zmieniło po wklejeniu?

Trzy częste przyczyny, uporządkowane według częstotliwości:

  1. Wejście jest już zminifikowane i nie ma błędów składni: formatowanie tylko dostosowuje wcięcia, więc jeśli oryginał naprawdę ma dwie linie, nadal będzie miał dwie linie — nowe linie wewnątrz łańcuchów nie są rozwijane;
  2. Treść nie jest JSON-em: na przykład wkleiłeś literał obiektowy JavaScript (klucze bez cudzysłowów, pojedyncze cudzysłowy), a parser zgłasza błąd zamiast formatować;
  3. Kliknąłeś zły przycisk: minifikacja i formatowanie idą w przeciwnych kierunkach, a minifikacja usuwa wszystkie wcięcia.

Jak to rozpoznać: spójrz na liczbę znaków w prawym górnym rogu obszaru wyjścia. Po formatowaniu liczba powinna wzrosnąć (dodatkowe wcięcia i nowe linie); jeśli spadła, uruchomiłeś minifikację.

3. Wejście i wyjście

Jak wyeksportować wynik do pliku?

Trzy sposoby, uporządkowane według niezawodności:

Metoda Działanie Kiedy używać
Przycisk pobierania Kliknij „Pobierz”, aby uzyskać plik .json Duże wyniki wymagające archiwizacji
Kopiowanie do schowka Kliknij „Kopiuj” Małe wyniki wklejane prosto do kodu
Ręczne zaznacz wszystko i kopiuj Zaznacz obszar wyjścia i naciśnij Ctrl/Cmd + C Fallback, gdy przycisk kopiowania zawodzi

Pobrany plik jest domyślnie zakodowany w UTF-8 bez BOM. To ma znaczenie: JSON z BOM psuje się od razu w wielu parserach (zobacz sekcję o BOM w FAQ dotyczącym składni i formatów).

Czy JSON5 i JSONC są wspierane?

Tak, ale rozróżnij „parsowanie” od „wyjścia”.

  • Po stronie wejścia możesz wkleić JSON5 (pojedyncze cudzysłowy, klucze bez cudzysłowów, komentarze, przecinki końcowe, liczby szesnastkowe) albo JSONC (tylko komentarze);
  • Po stronie wyjścia możesz konwertować do standardowego JSON-a albo konwertować standardowy JSON z powrotem do JSON5, aby ułatwić ręczne edytowanie.

Zawsze emituj standardowy JSON, gdy przekraczasz granice systemów. JSON5 to dialekt do konfiguracji pisanej przez ludzi; treść żądania z Content-Type: application/json zawierająca komentarze lub przecinki końcowe zostanie zwykle odrzucona przez serwer.

4. Środowisko i zgodność

Czy działa na telefonie?

Tak. Interfejs przepływa do jednej kolumny, a formatowanie, minifikacja, diffowanie i JSONPath są zachowane.

Ale obsługa dużych plików na telefonie to złe doświadczenie: klawiatura ekranowa zasłania treść, zaznaczanie tekstu jest trudne, a przeglądarka może odrzucić stronę przy przełączaniu aplikacji, tracąc treść. Akceptowalne jako awaryjne rozwiązanie, ale na co dzień rób to na desktopie.

Dlaczego ten sam plik otwiera się w Chrome, a w Safari daje błąd?

Zwykle nie jest to różnica przeglądarek, ale różnica kodowania. Debuguj w tej kolejności:

  1. BOM: UTF-8 zapisany przez Notatnik w Windows zawiera BOM, którego część parserów nie toleruje;
  2. Zakończenia wierszy: mieszanie CRLF i LF nie wpływa na sam JSON, ale przesuwa zgłaszane numery wierszy błędu, więc wygląda jak „zła pozycja błędu”;
  3. Niewidoczne znaki: tekst skopiowany ze strony internetowej może zawierać spacje zerowej szerokości (U+200B), niewidoczne dla oka, ale wystarczające, by zepsuć dopasowanie kluczy.

Jedna komenda to prześwietli:

# Look at the hex of the first 16 bytes; a leading EF BB BF means a BOM is present
head -c 16 data.json | xxd

5. Szybka ściągawka

Pytanie Wniosek
Czy wysyła dane Nie, wszystko jest przetwarzane lokalnie w przeglądarce i działa offline
Gdzie są dane localStorage, tylko historia i ustawienia, nigdy pliki
Jaki rozmiar pliku jest rozsądny Płynnie poniżej 2 MB; powyżej 10 MB przejdź na wiersz poleceń
Chiński zamieniony w \u Kliknąłeś ucieczkę; równoważne, ale większe i zwykle niepotrzebne
Zawiesiło się, co teraz Poczekaj na powrót → zwiń drzewo → skopiuj i użyj jq
Czy eksport jest bez BOM Tak, UTF-8 bez BOM
Czy komentarze są wspierane JSON5/JSONC po stronie wejścia; emituj standardowy JSON