Skip to content

Escape JSON (sekwencje ucieczki)

Zamień dowolny tekst lub JSON na poprawny literał napisu JSON w przeglądarce. Obsługuje cudzysłowy, znaki nowej linii, tabulatory, Unicode i ukośniki. W 100% prywatnie, bez wysyłania, natychmiast.

Bez śledzenia Działa w przeglądarce Bezpłatne
Opcje
Zawiń w podwójne cudzysłowy
Escape znaków spoza ASCII (\uXXXX)
Escape ukośnika (\/)
0 znaki
Escape'owany napis
0 znaki
Sprawdzone pod kątem zgodności ze specyfikacją JSON, poprawności par surogatów, bezpieczeństwa konwersji w obie strony oraz escape'owania ukośnika przy osadzaniu w HTML — Zespół inżynierów Go Tools · Jun 10, 2026

Czym jest escape'owanie JSON?

Escape'owanie JSON to proces zamiany surowego napisu na formę bezpieczną do osadzenia wewnątrz dokumentu JSON. JSON ma niewielki zestaw znaków o znaczeniu strukturalnym — podwójny cudzysłów ogranicza napisy, odwrotny ukośnik rozpoczyna sekwencję ucieczki — oraz znaki sterujące (nowe linie, tabulatory), które nie mogą pojawić się dosłownie wewnątrz napisu. Escape'owanie zastępuje każdy z nich bezpieczną dwuznakową sekwencją (\", \\, \n, \t) lub sekwencją Unicode \uXXXX, dzięki czemu powstały napis parsuje się czysto wszędzie.

Po escape'owanie JSON sięgasz częściej, niż mogłoby się wydawać. Najczęstszym przypadkiem jest JSON-in-JSON: koperta webhooka, ładunek kolejki komunikatów lub log audytu przechowuje treść żądania jako pole napisu, co oznacza, że wewnętrzny JSON musi zostać escape'owany przed przypisaniem. Innym jest ręczne tworzenie konfiguracji JSON: wklejenie wieloliniowego skryptu powłoki, zapytania SQL lub fragmentu kodu do pojedynczej wartości JSON wymaga zamiany każdej nowej linii na \n. Trzecim jest ręczne budowanie treści żądań REST w narzędziach takich jak curl, gdzie napis JSON w cudzysłowach musi zostać escape'owany, aby przetrwał powłokę i warstwę HTTP.

To narzędzie ma trzy wyróżniki w stosunku do naiwnego escapera. Po pierwsze, opiera się na dokładnych regułach specyfikacji JSON — tej samej logice, której używa zgodny serializator — więc wynik wraca bez strat: escape'uj tutaj, parsuj gdziekolwiek, odzyskaj swoje bajty. Po drugie, opcjonalny tryb bezpieczny dla ASCII zamienia każdy znak spoza ASCII (w tym astralne emoji obsługiwane jako pary surogatów) na \uXXXX dla systemów, którym nie można powierzyć UTF-8. Po trzecie, wszystko działa w 100% w Twojej przeglądarce — Twoje ładunki, które często zawierają dane osobowe, tokeny i sekrety, nigdy nie dotykają serwera. Aby odwrócić proces, użyj naszego narzędzia Unescape JSON; aby najpierw zweryfikować JSON, zobacz Formatowanie JSON.

// Input text
She said "hi"
then left.

// Escaped (Wrap on) — identical to JSON.stringify(input)
"She said \"hi\"\nthen left."

// Escaped (Wrap off) — just the body, for hand-built JSON
She said \"hi\"\nthen left.

// JSON-in-JSON
{"a":1}  ->  "{\"a\":1}"  ->  {"payload": "{\"a\":1}"}

Kluczowe funkcje

Escape'owanie zgodne ze specyfikacją

Oparte na dokładnych regułach specyfikacji JSON — cudzysłowy, odwrotne ukośniki, znaki nowej linii, tabulatory, powroty karetki i znaki sterujące są escape'owane identycznie jak przez zgodny serializator. Wynik wraca bez strat przez dowolny parser JSON.

Wynik z cudzysłowami lub bez

Zawiń w podwójne cudzysłowy włączone daje pełny literał napisu JSON (tak samo jak JSON.stringify); wyłączone daje samą escape'owaną treść, gdy sam wpisujesz cudzysłowy w ręcznie tworzonym dokumencie JSON.

Tryb \uXXXX bezpieczny dla ASCII

Opcjonalnie zamień każdy znak powyżej U+007F na sekwencję ucieczki Unicode, z astralnymi znakami jak emoji obsługiwanymi jako poprawne pary surogatów. Wynik to czyste ASCII, bezpieczne dla starszych potoków, które źle obsługują UTF-8.

Escape ukośnika bezpieczny dla HTML

Escape ukośnika zamienia / na \/, neutralizując sekwencję </script>, dzięki czemu JSON można osadzić wewnątrz znacznika HTML <script> bez przedwczesnego jego zamknięcia. Domyślnie wyłączone dla czystego wyniku wszędzie indziej.

Zamiana do weryfikacji konwersji w obie strony

Jeden przycisk Zamień kierunek przełącza w tryb unescape w miejscu i podaje wynik z powrotem jako wejście, dzięki czemu możesz potwierdzić, że escape → unescape zwraca Twój oryginalny tekst bajt po bajcie przed wysłaniem go.

Prywatność w 100% w przeglądarce

Całe escape'owanie działa po stronie klienta — Twoje ładunki (dane osobowe, tokeny, sekrety) nigdy nie opuszczają przeglądarki. Sprawdź to w karcie Sieć: zero żądań przy wklejaniu. Jedyny bezpieczny sposób escape'owania wrażliwych danych w narzędziu online.

Przykłady

Osadzanie JSON w JSON (JSON-in-JSON)

{"event":"signup","user":{"id":42,"name":"Alice"}}

Zastosuj escape do tego obiektu, aby mógł istnieć jako wartość napisu wewnątrz innego dokumentu JSON — np. pole ładunku webhooka lub koperta komunikatu Kafki. Przy włączonym Zawiń wynik jest gotowy do wklejenia bezpośrednio po dwukropku.

Wieloliniowy fragment kodu do pola konfiguracji

function greet(name) {
  return `Hello, ${name}!`;
}

Zamień wieloliniową funkcję JS na jednoliniowy napis JSON. Znaki nowej linii stają się \n, a szablon z grawisami pozostaje nienaruszony — wklej go do wartości konfiguracyjnej JSON bez psucia pliku.

Tekst z cudzysłowami i tabulatorami

She said "hello"	then left.

Podwójne cudzysłowy są escape'owane do \", a tabulator staje się \t, więc napis można bezpiecznie umieścić w dowolnym parserze JSON, wierszu logu lub treści żądania REST.

Wynik bezpieczny dla ASCII w starszych systemach

Price: 9.99€ — café société

Włącz Escape znaków spoza ASCII, aby zamienić € i litery z akcentami na \uXXXX. Wynik to czyste ASCII, bezpieczne dla systemów, które przekłamują UTF-8 w transmisji.

Jak używać

  1. 1

    Wklej swój tekst lub JSON

    Wpisz lub wklej cokolwiek do pola wejściowego — obiekt JSON, fragment kodu, wiersz logu lub zwykły tekst. Escape'owany wynik pojawia się natychmiast. Kliknij „Wczytaj przykład”, aby wypróbować próbkę, np. ładunek JSON-in-JSON lub wieloliniową funkcję.

  2. 2

    Wybierz opcje escape'owania

    Pozostaw „Zawiń w podwójne cudzysłowy” włączone dla pełnego literału napisu JSON (tak samo jak JSON.stringify) lub wyłączone, aby otrzymać samą escape'owaną treść. Przełącz „Escape znaków spoza ASCII” dla wyniku \uXXXX w czystym ASCII oraz „Escape ukośnika” przy osadzaniu JSON w znaczniku HTML <script>.

  3. 3

    Skopiuj escape'owany napis

    Kliknij Kopiuj, aby pobrać wynik gotowy do wklejenia do dokumentu JSON, treści żądania REST lub pliku konfiguracyjnego. Kliknij Zamień kierunek, aby przełączyć w tryb unescape i zweryfikować bezstratną konwersję w obie strony.

Częste pułapki escape'owania

Podwójne escape'owanie (escape już escape'owanego tekstu)

Uruchomienie escape dwukrotnie zamienia \n na \\n, a \" na \\\", więc odbiorca widzi dosłowny odwrotny ukośnik z n zamiast nowej linii. Zwykle dzieje się tak, gdy tekst został już escape'owany w JSON wcześniej w potoku. Najpierw odescape'uj (Zamień kierunek), aby sprawdzić, a potem escape'uj dokładnie raz.

✗ Niepoprawne
Input already escaped: line1\nline2
Escaped again -> line1\\nline2  (literal backslash-n)
✓ Poprawne
Raw input: line1
line2
Escaped once -> line1\nline2  (real newline encoded)

Pominięcie otaczających cudzysłowów

Przy wyłączonym Zawiń otrzymujesz tylko escape'owaną treść, a nie pełny napis JSON. Wklejenie jej bezpośrednio tam, gdzie oczekiwana jest wartość, daje niepoprawny JSON, ponieważ brakuje cudzysłowów. Albo trzymaj Zawiń włączone, albo upewnij się, że sam wpisujesz cudzysłowy.

✗ Niepoprawne
{"msg": hello \"world\"}
// Missing quotes around the value -> invalid JSON
✓ Poprawne
{"msg": "hello \"world\""}
// Wrap on supplies the quotes -> valid JSON

Niepotrzebne nadmierne escape'owanie spoza ASCII

Włączenie Escape znaków spoza ASCII, gdy odbiorca poprawnie obsługuje UTF-8, tylko rozdyma wynik i pogarsza czytelność — café staje się caf\u00e9 bez powodu. Zostaw tę opcję wyłączoną, chyba że konkretny starszy system wymaga czystego ASCII.

✗ Niepoprawne
café  ->  caf\u00e9   (no downstream need; just noise)
✓ Poprawne
café  ->  café         (valid JSON, readable, smaller)

Częste zastosowania

Ładunki webhooków JSON-in-JSON
Zastosuj escape do treści żądania, aby można było ją przechować jako pole napisu wewnątrz koperty webhooka, komunikatu Kafki lub logu audytu. Pozostaw Zawiń włączone, a wynik jest gotowy do przypisania do klucza w zewnętrznym dokumencie.
Wieloliniowe fragmenty w konfiguracji
Zamień wieloliniowy skrypt powłoki, zapytanie SQL lub fragment kodu na pojedynczą wartość napisu JSON. Każda nowa linia staje się \n, więc plik konfiguracyjny JSON pozostaje poprawny w jednej linii.
Ręcznie budowane treści żądań REST
Zastosuj escape do napisu JSON przed umieszczeniem go w argumencie curl --data lub kliencie HTTP, aby cudzysłowy i znaki nowej linii przetrwały powłokę i sieć bez psucia żądania.
Kodowanie napisów bezpieczne dla logów
Zastosuj escape do treści dostarczonej przez użytkownika przed zapisaniem jej w strukturalnym wierszu logu, zapobiegając wstrzykniętym cudzysłowom lub znakom nowej linii przed uszkodzeniem formatu logu lub parsera logów JSON w dalszej części potoku.
Integracje ze starszymi systemami tylko ASCII
Wytwórz wynik \uXXXX w czystym ASCII dla bram SOAP, nagłówków e-mail lub starszych systemów, które przekłamują UTF-8 w transmisji, zachowując pełną dekodowalność przez dowolny nowoczesny parser JSON.
Osadzanie JSON w HTML
Zastosuj escape do ukośników, aby blok JSON można było osadzić bezpośrednio wewnątrz znacznika <script> na stronach renderowanych po stronie serwera, bez tego, by </script> wewnątrz danych zamknęło znacznik za wcześnie.

Szczegóły techniczne

Algorytm escape'owania
Narzędzie serializuje Twoje wejście zgodnie z regułami napisów specyfikacji JSON: U+0022 (") → \", U+005C (\) → \\, U+0008 → \b, U+000C → \f, U+000A → \n, U+000D → \r, U+0009 → \t, a każdy inny znak poniżej U+0020 → \u00XX. Przy włączonym Zawiń otaczające podwójne cudzysłowy są dołączane; przy wyłączonym są usuwane. Odpowiada to dokładnie wynikowi zgodnego serializatora, gwarantując bezstratną konwersję w obie strony.
Unicode i pary surogatów
Domyślnie znaki powyżej U+007F są emitowane jako dosłowne UTF-8, które JSON dopuszcza. Przy włączonym Escape znaków spoza ASCII każdy taki znak jest zamieniany na \uXXXX z użyciem jego jednostki kodowej UTF-16; znaki spoza Podstawowej Płaszczyzny Wielojęzycznej (emoji, rzadkie pisma) są kodowane jako para surogatów dwóch sekwencji \uXXXX — na przykład 😀 (U+1F600) staje się \ud83d\ude00, czyli ta sama reprezentacja, którą produkuje serializator JSON.
Ukośnik i kontekst HTML
JSON nie wymaga escape'owania /, więc domyślnie jest zachowywany. Gdy Escape ukośnika jest włączony, każdy / staje się \/. Jedynym praktycznym powodem, aby to zrobić, jest osadzanie w HTML: wewnątrz znacznika <script> dosłowny podciąg </script> zamyka znacznik niezależnie od kontekstu JSON, więc escape'owanie ukośnika do <\/script> zachowuje osadzony JSON nienaruszony, pozostając zgodnym ze specyfikacją.

Dobre praktyki

Trzymaj Zawiń włączone dla pełnych literałów
Gdy potrzebujesz wartości do przypisania w kodzie lub wklejenia po dwukropku w JSON, trzymaj Zawiń w podwójne cudzysłowy włączone — wynik to pełny, parsowalny napis JSON identyczny z JSON.stringify. Wyłączaj tylko wtedy, gdy sam ręcznie wpisujesz otaczające cudzysłowy.
Zostaw escape Unicode wyłączony, chyba że jest wymagany
Surowe UTF-8 to poprawny JSON i jest znacznie czytelniejsze. Włącz Escape znaków spoza ASCII tylko dla konkretnego systemu w dalszej części potoku, który źle obsługuje UTF-8 (starsze SOAP, niektóre potoki logów, pliki źródłowe tylko ASCII). Escape'owanie wszystkiego domyślnie czyni wynik jedynie bardziej zaszumionym.
Escape'uj ukośniki tylko przy osadzaniu w HTML
Escape ukośnika ma znaczenie dokładnie w jednym miejscu: JSON osadzony w znaczniku HTML <script>. Poza tym kontekstem dodaje bałaganu bez korzyści, więc zostaw go wyłączonego dla treści REST, plików konfiguracyjnych i ładunków komunikatów.
Weryfikuj konwersję w obie strony przez Zamień
Przed wysłaniem escape'owanych danych do potoku kliknij Zamień kierunek, aby je odescape'ować i potwierdzić, że odzyskujesz oryginalny tekst. To wychwytuje przypadkowe podwójne escape'owanie — częste źródło \\n pojawiającego się tam, gdzie zamierzono \n. Odwróć w dowolnym momencie naszym narzędziem Unescape JSON.

Najczęściej zadawane pytania

Co robi to narzędzie escape JSON?
Zamienia dowolny tekst — obiekt JSON, fragment kodu, wiersz logu lub zwykłą prozę — na poprawny literał napisu JSON, w całości w Twojej przeglądarce. Znaki specjalne, które zepsułyby dokument JSON, są escape'owane: podwójne cudzysłowy stają się \", odwrotne ukośniki stają się \\, znaki nowej linii stają się \n, tabulatory stają się \t, powroty karetki stają się \r, a pozostałe znaki sterujące stają się \uXXXX. Wynik to napis, który możesz bezpiecznie wkleić jako wartość wewnątrz dokumentu JSON, treści żądania REST, pliku konfiguracyjnego lub kolumny bazy danych. Nic nie jest wysyłane — konwersja działa w 100% po stronie klienta, więc jest bezpieczna dla ładunków zawierających dane osobowe, sekrety lub dane wewnętrzne.
Jaka jest różnica między escape JSON a JSON stringify?
Opisują tę samą podstawową operację z dwóch perspektyw. JSON.stringify() w JavaScript przyjmuje wartość i tworzy jej tekstową reprezentację JSON; gdy wartością jest napis, oznacza to owinięcie go w podwójne cudzysłowy i escape'owanie znaków specjalnych w środku — czyli dokładnie escape JSON. To narzędzie robi właśnie to: przy włączonym Zawiń w podwójne cudzysłowy wynik równa się JSON.stringify(twójTekst); przy wyłączonym otrzymujesz escape'owaną treść bez otaczających cudzysłowów, czego potrzebujesz, gdy budujesz JSON ręcznie i już wpisałeś cudzysłowy. Jeśli więc szukałeś json stringify online, to jest to narzędzie — daje Ci obie formy: z cudzysłowami i bez.
Czy moje dane są gdziekolwiek wysyłane?
Nie. Całe escape'owanie działa w całości w Twojej przeglądarce za pomocą JavaScript — Twój tekst nigdy nie jest przesyłany, przechowywany, logowany ani analizowany na żadnym serwerze. Dzięki temu narzędzie jest bezpieczne dla ładunków API z danymi osobowymi, tokenami uwierzytelniającymi, konfiguracją wewnętrzną i sekretami produkcyjnymi. Możesz to sprawdzić w karcie Sieć w przeglądarce: pisanie lub wklejanie wywołuje zero żądań sieciowych. Nie ma plików cookie dla Twoich danych wejściowych ani analityki firm trzecich przechwytującej to, co wklejasz.
Kiedy potrzebuję opcji \uXXXX (escape spoza ASCII)?
JSON dopuszcza surowe UTF-8, więc domyślnie é pozostaje é, a emoji pozostaje emoji — w pełni poprawnie i czytelniej. Włącz Escape znaków spoza ASCII tylko wtedy, gdy systemowi w dalszej części potoku nie można powierzyć UTF-8: stare bramy SOAP/XML, niektóre potoki logowania, nagłówki e-mail lub pliki źródłowe, które muszą pozostać czystym ASCII. Przy włączonej opcji każdy znak powyżej U+007F staje się sekwencją \uXXXX (znaki astralne, jak emoji, stają się parą surogatów, np. 😀 → \ud83d\ude00). Wynik jest bajt po bajcie zgodny z ASCII i dekoduje się z powrotem do oryginalnego Unicode w każdym zgodnym parserze JSON.
Jak osadzić obiekt JSON wewnątrz innego napisu JSON (JSON-in-JSON)?
Wklej wewnętrzny JSON do pola wejściowego, pozostaw włączone Zawiń w podwójne cudzysłowy i skopiuj wynik — jest to teraz pojedynczy escape'owany napis, który możesz przypisać do klucza w zewnętrznym dokumencie. Na przykład {"a":1} staje się "{\"a\":1}", który umieszczasz po dwukropku: {"payload": "{\"a\":1}"}. To podwójne kodowanie jest częste w kopertach webhooków, ładunkach kolejek komunikatów i logach audytu, które przechowują treść żądania jako napis. Aby odwrócić tę operację i odczytać wewnętrzny obiekt, użyj naszego narzędzia Unescape JSON.
Co robi opcja Escape ukośnika (\/)?
Ukośnik / jest zwykłym znakiem w JSON i nie wymaga escape'owania, więc domyślnie pozostaje nietknięty. Opcja istnieje dla jednego konkretnego przypadku: osadzania JSON wewnątrz znacznika HTML <script>, gdzie sekwencja </script> przedwcześnie zamknęłaby znacznik. Escape'owanie / do \/ zamienia </script> na <\/script>, co nadal jest poprawnym JSON, ale nie jest już terminatorem znacznika. Włącz tę opcję tylko wtedy, gdy umieszczasz JSON w HTML; w każdym innym zastosowaniu pozostaw ją wyłączoną dla czystszego wyniku.
Czy poprawnie obsługuje znaki nowej linii, tabulatory i znaki sterujące?
Tak. Narzędzie opiera się na dokładnych regułach escape'owania ze specyfikacji JSON: nowa linia → \n, powrót karetki → \r, tabulator → \t, backspace → \b, wysuw strony → \f, podwójny cudzysłów → \", odwrotny ukośnik → \\, a każdy pozostały znak sterujący poniżej U+0020 → \uXXXX. Jest to identyczne z tym, co produkuje zgodny serializator JSON, więc wynik wraca bez strat: zastosuj escape tutaj, sparsuj gdziekolwiek, a odzyskasz oryginalny tekst bajt po bajcie.

Powiązane narzędzia

Zobacz wszystkie narzędzia →