Jak zakodować tekst do ciągu JSON (escape)
- Wybierz tryb: Koduj (escape), Dekoduj (unescape), Zamień JSON na string lub Zamień string na JSON.
- Wpisz lub wklej dane wejściowe – wynik pojawi się od razu. Przy kodowaniu zdecyduj, czy dodać cudzysłowy wokół tekstu i czy zapisywać znaki spoza ASCII jako
\uXXXX. - Skopiuj wynik lub naciśnij Zamień, aby odwrócić operację i sprawdzić, czy tekst wraca do pierwotnej postaci.
Znaki specjalne i sekwencje ucieczki w JSON
| Znak | Po zakodowaniu |
|---|---|
Cudzysłów podwójny " | \" |
Ukośnik odwrotny \ | \\ |
| Znak nowej linii (line feed) | \n |
| Powrót karetki (carriage return) | \r |
| Tabulator | \t |
| Backspace, wysunięcie strony (form feed) | \b, \f |
| Pozostałe znaki sterujące U+0000–U+001F | \u0000 … \u001f |
| Dowolny znak (opcjonalnie) | \uXXXX, np. é → \u00e9, 😀 → \ud83d\ude00 |
Ukośnik / (opcjonalnie) | \/ |
Apostrofów nigdy nie trzeba kodować w JSON, ponieważ ciągi znaków w JSON zawsze używają podwójnych cudzysłowów.
JSON zapisany jako string (stringified JSON)
Stringified JSON to dokument JSON zapisany wewnątrz ciągu znaków JSON – na przykład pole API w rodzaju "payload": "{\"id\":7}" albo JSON przechowywany w kolumnie bazy danych, zmiennej środowiskowej lub wierszu logu. Tryb Zamień JSON na string tworzy taki ciąg z dokumentu; tryb Zamień string na JSON rozpakowuje go – nawet jeśli został zamieniony na string dwukrotnie – i formatuje wynik.
- JavaScript:
JSON.stringify(text)koduje,JSON.parse(literal)dekoduje. - Python:
json.dumps(text)ijson.loads(literal). - PHP:
json_encode($text)ijson_decode($literal).
Najczęściej zadawane pytania
Które znaki trzeba escapować w JSON?
Tylko cudzysłów podwójny, ukośnik odwrotny i znaki sterujące od U+0000 do U+001F, takie jak podziały wierszy i tabulatory. Wszystko inne – w tym ą, é, 中 i emoji – może występować bez zmian w JSON zakodowanym w UTF-8.
Dlaczego widzę \u0142 zamiast ł?
Niektóre programy zapisują każdy znak spoza ASCII jako sekwencję \uXXXX. Obie formy znaczą to samo; tryb „Dekoduj (unescape)” zamienia takie sekwencje z powrotem na czytelny tekst.
Czym różni się escape od stringify?
Escape zamienia dowolny tekst w literał ciągu JSON. Stringify najpierw sprawdza, czy dane wejściowe są poprawnym JSON, minifikuje je, a dopiero potem koduje, więc wynikiem jest ciąg znaków zawierający dokument JSON.
Czy mogę zdekodować ciąg bez zewnętrznych cudzysłowów?
Tak. Wklej treść z cudzysłowami na początku i końcu lub bez nich; tolerowane są też pojedyncze niezakodowane cudzysłowy i prawdziwe podziały wierszy.