Wejście

Wyjście

Czym jest Tekst do JSON?

Czasami JSON jest przesyłany jako ciąg: eskejpowany, podwójnie zakodowany lub opakowany w cudzysłowy. Ciąg taki jak "{\"a\": 1}" jest ciągiem JSON, którego wartością jest JSON. Aby go sparsować, należy wykonać dwa parsowania: najpierw zewnętrzny ciąg, a następnie wewnętrzny JSON. To narzędzie to robi. Obsługuje też przypadki gdy wejście jest zwykłym ciągiem, który powinien być sparsowany jako JSON.

Narzędzie używa JSON.parse() w przeglądarce. Jeśli wejście jest ciągiem zawierającym JSON, parsuje ponownie. Żadne dane nie są wysyłane na serwer.

Jak korzystać z tego narzędzia

1

Wklej ciąg tekstowy

Wklej ciąg, który chcesz sparsować. Może to być zwykły ciąg JSON, eskejpowany ciąg JSON (np. z logu lub API) lub podwójnie zakodowana wartość. W razie potrzeby użyj Przykładu lub Wczytaj.

2

Wyświetl sparsowane wyjście

Prawy panel pokazuje sparsowany JSON. Jeśli wejście było ciągiem zawierającym JSON, narzędzie parsuje go ponownie. Nieprawidłowe wejście pokazuje błąd. Wyjście jest sformatowane dla czytelności.

3

Kopiuj, pobierz lub minimalizuj

Użyj Kopiuj, Pobierz lub Minimalizuj aby uzyskać wynik. Do eskejpowania lub uneskejpowania ciągów użyj JSON Escape. Do walidacji użyj Walidatora JSON.

Przykłady: Tekst do JSON

Parsowanie eskejpowanego lub sformatowanego jako ciąg JSON. Przykład z branży telekomunikacyjnej:

Wejście (ciąg JSON)

Wejście

Sparsowane wyjście

Wyjście

Kiedy tego potrzebujesz

JSON przechowywany w bazie danych jako kolumna tekstowa często zwracany jest jako eskejpowany ciąg. Odpowiedzi API opakowujące JSON w inny ciąg JSON wymagają podwójnego parsowania. Logi zapisujące JSON jako ciąg wymagają tego samego. Specyfikacja JSON zezwala ciągom zawierającym eskejpowany JSON; parsowanie tego ciągu daje wewnętrzną strukturę. To narzędzie automatyzuje ten dodatkowy krok parsowania.

Podczas testowania API w Postmanie lub debugowania odpowiedzi w DevTools możesz otrzymać wartość JSON jako ciąg. Dokumentacja JSON.parse() wyjaśnia reguły parsowania. Formalnym standardem jest RFC 8259. Przewodnik MDN po JSON omawia typowe pułapki.

Jeśli potrzebujesz eskejpować lub uneskejpować znaki w ciągu (np. cudzysłowy, ukośniki odwrotne), użyj JSON Escape. Do formatowania już sparsowanego JSON użyj Formatera JSON.

Przykład: Konwersja zestringowanego JSON

Zestringowany JSON — wejście:

"{\"name\":\"Alice\",\"age\":30,\"active\":true}"

Sparsowany JSON — wyjście:

{
  "name": "Alice",
  "age": 30,
  "active": true
}

Często zadawane pytania

Co jeśli moje wejście jest już prawidłowym JSON?

Narzędzie sparsuje je i pokaże wynik. Jeśli jest to ciąg zawierający JSON, parsuje ponownie. Zatem {"a": 1} działa, a "{\"a\": 1}" jest parsowany dwukrotnie aby uzyskać {"a": 1}.

Ile poziomów parsowania wykonuje?

Parsuje dopóki wynik jest ciągiem. Zatem "\"{\\\"a\\\": 1}\"" (potrójne kodowanie) jest parsowany aż do uzyskania obiektu. W praktyce zazwyczaj 2–3 poziomy to maksimum.

Czy dane są wysyłane gdzieś?

Nie. Parsowanie odbywa się w przeglądarce.

Co z nieprawidłowym JSON w ciągu?

Otrzymasz błąd parsowania. Popraw składnię (końcowe przecinki, klucze bez cudzysłowów itp.) i spróbuj ponownie. Walidator JSON może pomóc zidentyfikować problemy.

Kiedy mam podwójnie zakodowany JSON?

Gdy JSON jest przechowywany jako ciąg w kolumnie bazy danych, lub gdy API zwraca obiekt JSON, w którym jedna z wartości jest JSON jako ciąg. Parsowanie zewnętrznego JSON daje ciąg; parsowanie tego ciągu daje wewnętrzny JSON.

Powiązane narzędzia

Do parsowania JSON w JavaScript zob. MDN JSON.parse i przewodnik MDN po JSON. RFC 8259 definiuje składnię JSON. Specyfikacja JSON na json.org zawiera gramatykę. Zobacz też jq i Postman. Do eskejpowania ciągów użyj JSON Escape.