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.
Opcje
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
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
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
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.
Input already escaped: line1\nline2 Escaped again -> line1\\nline2 (literal backslash-n)
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.
{"msg": hello \"world\"}
// Missing quotes around the value -> invalid JSON {"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.
café -> caf\u00e9 (no downstream need; just noise)
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?
Jaka jest różnica między escape JSON a JSON stringify?
Czy moje dane są gdziekolwiek wysyłane?
Kiedy potrzebuję opcji \uXXXX (escape spoza ASCII)?
Jak osadzić obiekt JSON wewnątrz innego napisu JSON (JSON-in-JSON)?
Co robi opcja Escape ukośnika (\/)?
Czy poprawnie obsługuje znaki nowej linii, tabulatory i znaki sterujące?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Koder i dekoder Base64
Kodowanie i formatowanie
Zakoduj i zdekoduj Base64 online za darmo. Konwersja w czasie rzeczywistym z pełną obsługą UTF-8 i emoji. 100% w przeglądarce, bez rejestracji.
Konwerter Base64 na obraz
Kodowanie i formatowanie
Zdekoduj ciąg Base64 lub data URI z powrotem na obraz w przeglądarce. Podejrzyj, odczytaj wymiary i MIME, a potem pobierz jako PNG, JPG, GIF, SVG. Bez przesyłania.
Konwerter CSV na JSON
Kodowanie i formatowanie
Konwertuj CSV na JSON w przeglądarce. RFC 4180, wnioskowanie typów, nagłówek, big-int safe. 100% prywatnie, bez wysyłki.
Konwerter HTML na Markdown
Kodowanie i formatowanie
Konwertuj HTML na czysty Markdown w przeglądarce — tabele GFM, listy zadań i linki. Wybierz nagłówki ATX/Setext oraz linki inline lub referencyjne. Idealne do migracji treści webowej lub zasilania LLM. 100% prywatnie.
Konwerter obrazu na Base64
Kodowanie i formatowanie
Konwertuj obrazy na data URI Base64 w przeglądarce — PNG, JPG, GIF, WebP, SVG, ICO. Kopiuj wynik HTML, CSS, Markdown i JSON. 100% prywatnie, bez przesyłania.
JSON Diff (Porównaj)
Kodowanie i formatowanie
Porównaj dwa pliki JSON natychmiast w przeglądarce. Podświetlanie obok siebie, wynik JSON Patch (RFC 6902), ignorowanie szumliwych pól jak znaczniki czasu i identyfikatory. 100% prywatności, bez przesyłania.